제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
5 장 조건과 반복 ②. Contents Counting and Looping [while 문 사용 ] Powers of 2 [while 문 사용 ] More Guessing [do 문 사용 ] Election Day [do 문 사용 ] Finding Maximum &
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
명품 JAVA Programming 제 3 장 반복문, 배열, 예외처리.
어서와 Java는 처음이지! 제3장선택과 반복.
Vision System Lab, Sang-Hun Han
제 3 장 변수와 자료형.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
10. 예외 처리.
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
C++ Espresso 제1장 기초 사항.
IntArray[0] int length 5 intArray 객체 제 3 장 반복문, 배열, 예외처리.
제 1장 C 언어의 소개.
객체지향 프로그래밍.
Chap05 상속 5.1 상속의 개요 5.2 멤버 변수의 상속 5.3 메소드의 상속과 오버라이딩(Overriding)
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
어서와 Java는 처음이지! 제4장 배열.
제 4장 문 장 배정문 혼합문 제어문 표준 입출력.
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
명품 JAVA Essential.
4장: 자료형과 수식.
10장 객체-지향 프로그래밍 II ©창병모.
8장 자바 입출력.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
7 스택.
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
01. 직렬화와 역직렬화에 대하여 객체의 직렬화 직렬화와 역직렬화
명품 JAVA Essential.
명품 Java Programming.
최용술 장 Thread 최용술
2장 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램
DataScience Lab. 박사과정 김희찬 (월)
제2장 데이터 및 수식.
제 2 장 변수와 상수.
주소록 프로그램.
제 3 장 상수와 변수
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
제1장 서론.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
Java 8장. 상속 public class SumTest {
23강 API - II - 약방의 감초 Random 클래스 - Scanner 및 Sysout - Wrapper 클래스의 이해
adopted from KNK C Programming : A Modern Approach
Chapter 2 Lexical Elements, Operators, and the C System
5장 조건과 반복 ②.
제2장 데이터 및 수식.
어서와 Java는 처음이지! 제4장 배열 IT응용시스템공학과 김형진 교수.
DataScience Lab. 박사과정 김희찬 (월)
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
Web programming Chap 04 상속 김 정 석
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
4장 - PHP의 표현식과 흐름 제어-.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Java Chapter 4 ~ 주차.
컴퓨터공학실습(I) 3주 인공지능연구실.
Java의 정석 제 4 장 조건문과 반복문 Java 정석 남궁성 강의
자바 5.0 프로그래밍.
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
자바 5.0 프로그래밍.
C# 10장. 참조형.
printf("Global Korea\n");
Choi Younghwan CSE HUFS
Presentation transcript:

제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형

어휘구조와 자료형 어휘 자료형 문법적으로 의미 있는 최소의 단위 토큰(token) 컴파일 과정의 첫번째 단계 (어휘분석) 자료 객체가 갖는 형 구조, 개념, 값, 연산

토 큰 문법적으로 의미 있는 최소의 단위 if (i<100) sum+=i; 토큰 특수형태 일반형태 지정어(keyword) : abstract, boolean, ..., while 연산자(operator) : +, -, *, /, ..., >>> 구분자(delimiter) : , ; . ( ) [ ] 명칭(identifier) : sum, stk, ptr, ... 리터럴(literal) : 12, 5.53, 5.97e24, 'c', "string"

지정어 (keyword) 자바 지정어 (47개) abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw catch float package throws char for private transient* class goto* protected try const* if public void continue implements return volatile default import short while do instanceof static

명칭 (identifier) [1/2] 자료의 항목을 식별하기 위하여 붙이는 이름 명칭의 형태 (변수, 상수, 배열, 클래스, 메소드, 레이블) 명칭의 형태 대소문자를 구분, 문자나 밑줄(_) 문자, 혹은 $로 시작 합성 명칭인 경우 : SumOfVector 바른 명칭 : sum, sum1, _sum, $sum, money_sum, MoneySum 틀린 명칭 : 1sum, sum!, #sum, Money Sum, package

명칭 (identifier) [2/2] 자바 문자 집합 유니코드(Unicode):플랫폼,프로그램언어에 관계없이 문자마다 고유한 숫자를 제공 문자 표현 : 16 Bit 세계 모든 언어 표현 대소문자 구별 static final double  = 3.1415924 ; int X, x; int MyVar, myvar, myVar, Myvar;

예제2-1 Identifier.java public class Identifier { public static void main(String[] args) { int MyVar=1, myvar=2; int $sum=10, Package=20; System.out.println("MyVar = " + MyVar + ", myvar = " + myvar); System.out.println("$sum = " + $sum + ", Package = " + Package); }

리터럴(literal) [1/4] 자신의 표기법이 곧 자신의 값이 되는 상수 정수형 상수 10진수, 8진수, 16진수 정수형 상수, 실수형 상수, 문자형 상수, 스트링 상수 true, false, null 정수형 상수 10진수, 8진수, 16진수 default : 32 bit 접미어 -L, -l : 64 bit 16, 26l, 45L 10진수 : 15, 255, 65535 8진수 : 017, 0377, 0177777 16진수 : 0xf, 0xff, 0xffff

예제2-2 IntegerConstant.java public class IntegerConstant { public static void main(String[] args) { int i=255, o=0377, h=0Xff; long l=0XffL; System.out.println("i = " + i + ", o = " + o + ", h = " + h); if (h == l) System.out.println("Yes"); else System.out.println("No"); }

리터럴(literal) [2/4] 실수형 상수 : 8진수,16진수 형태로 나타낼 수 없다. 지수(exponent)의 유무에 따라 고정소수점 수 : 1.414, 3.1415924 부동소수점 수: 0.1414e01, 0.1414E1 정밀도(precision)에 따라 float 형 : 접미어 -f, -F 3.14f, 0.526f double 형 : default 3.14, 0.526 예: float f=3.14 double d=3.14f

예제2-3 RealConstant.java public class RealConstant { public static void main(String[] args) { float f1=1.414F, f2=0.1414e01f; double d=0.1414E1; System.out.println("f1 = " + f1 + ", f2 = " + f2 + ", d = " + d); if (f1 == f2) System.out.println("Yes"); else System.out.println("No"); if (f2 == d) System.out.println("Yes"); }

리터럴(literal) [3/4] 논리형 상수 문자 리터럴 binary value true, false 단일 인용부호(single quote) 사이에 표현 특별한 문자 : escape sequence \n newline(\u000A) \t tab(\u0009) \b backspace(\u0008) \r return(\u000D) \f form feed(\u000C)

예제2-4 BooleanConstant.java public class BooleanConstant { public static void main(String[] args) { System.out.println("TRUE AND TRUE = " + (true && true)); System.out.println("TRUE AND FALSE = " + (true && false)); System.out.println("FALSE AND TRUE = " + (false && true)); System.out.println("FALSE AND FALSE = " + (false && false)); }

리터럴(literal) [4/4] 스트링 리터럴 객체 참조 리터럴 이중 인용부호(double quote) 사이에 표현 “I am a string” “\”” java.lang.String 클래스의 객체로 취급 객체 참조 리터럴 null 아무 객체도 가리키지 않는 상태 초기화에 사용 부적당하거나 객체를 생성할 수 없는 경우 사용

예제2-5 CharString.java public class CharString { public static void main(String[] args) { char c = 'A'; // 'A' <=> 65 int i; i = c + 1; System.out.println("c = " + c + "\ni = " + (char)i); System.out.println("\"I am a string.\""); }

주석(comment) 프로그램 설명을 위한 문장 프로그램 유지보수에 중요 주석 종류 Line Comment : // comment //부터 새로운 줄 전까지 주석으로 간주 Text Comment : /* comment */ /*와 다음 */ 사이의 모든 문자들은 주석으로 간주 Documentation Comment : /** comment */ /**와 다음 */ 사이의 모든 문자들은 주석으로 간주 javadoc 도구를 이용하여 API 문서 작성에 사용

자료형(data type) 기본형 문자형 논리형 자료형 배열형 참조형 클래스형 인터페이스형 숫자형 - 정수형, 실수형 기본형 문자형 논리형 자료형 배열형 참조형 클래스형 인터페이스형 자료형은 구조 및 개념, 값의 범위, 연산 등을 정의. 자바는 변수를 사용하기 전에 반드시 자료형을 선언

기본형(primitive type) [1/4] 정수형 int short byte long float double 숫자형 실수형 문자형 논리형 char boolean

기본형(primitive type) [2/4] 정수형(integer type) 유형 크기 최소값 최대값 byte 8bit -128 127 short 16bit -32768 32767 int 32bit -2147483648 2147483647 long 64bit -9223372036854775808 9223372036854775807 C/C++와는 달리 unsigned는 지원하지 않음 자바 언어는 기계 독립적 이기때문에 자료형의 크기가 고정 수식에서 byte와 short형의 값은 항상 연산 되기 전에 int형으로 변환 실수형(real type) float(32비트), double(64비트) 실수의 표현 방법과 실수 연산은 IEEE 754 표준 따름

기본형(primitive type) [3/4] 문자형(character type) Unicode 사용 논리형(boolean type) true와 false 중 하나의 값만을 가지는 자료형 숫자 값 가질 수 없음 다른 자료형으로 변환되지 않음

기본형(primitive type) [4/4] 자료형에 대한 초기값 초기값(initial value)이 명시되지 않으면, 해당하는 field type에 따라 default 초기값을 할당 local variable, static initializer : default초기값을 할당 않음 Field Type Initial value byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d boolean false char ‘\u0000’

참조형(reference type) 객체를 가리키는 형 배열 클래스형 인터페이스형 같은 형의 여러 값을 저장하는데 이용하는 자료형 C/C++와 달리 객체로 취급 클래스형 클래스 이름 객체를 가리키는 참조형 인터페이스형 인터페이스 이름 인터페이스를 구현한 객체에 대한 참조

배열형 [1/4] 순서가 있고 같은 형의 원소들의 모임 배열 사용 단계 배열 변수 선언 배열 객체 생성 배열 변수 : 배열을 가리키는 변수 배열에 속한 원소의 형과 차원 등을 명시 배열 객체 생성 new 연산자를 통해 동적으로 생성 int[] vector; short matrix[][]; Object[] myArray;

vector[0] vector[1] vector[2] 배열형 [2/4] vector1 = new int[5]; vector2 = {1, 2, 3, 4, 5, 6, 7, 8, 9}; matrix = new short[10][100]; myArray = new Point[3]; 배열 변수 선언과 동시에 배열 할당  참고: 배열 변수 선언과 생성에 따른 메모리 구조 int[] day = new int[31]; int[] vector ; vector = new int[3] ; vector[0] vector[1] vector[2] vector :

배열형 [3/4] 배열에 값 저장 배열의 인덱스는 0부터 시작 length를 통한 배열의 길이 범위 초과 : IndexOutOfBoundException이 발생 [예제 2.7] 테스트 int a[] = new int[50]; for(int i=0; i < a.length; i++) a[i] = i;

배열형 [4/4] 배열의 배열(array of array) 배열의 원소가 다시 배열이 되는 배열 다차원 배열 첫번째 차원의 크기는 반드시 명시 [예제 2.8] 테스트 --- 교과서 58쪽 int[][] matrix = new int[3][3]; int[][] matrix = new int[3][]; for (int i=0; i < matrix.length; i++) matrix[i] = new int[3];

[예제 2.8- ArrayOfArray.java] ______________________________________ public class ArrayOfArray { public static void main(String[] args) { int[][] matrix = new int[3][]; // declaration int i, j; for (i = 0; i < matrix.length; i++) // creation matrix[i] = new int[i+3]; for (i = 0; i < matrix.length; i++) // using for (j = 0; j < matrix[i].length; j++) matrix[i][j] = i*matrix[i].length + j; for (i = 0; i < matrix.length; i++) { for (j = 0; j <matrix[i].length; j++) System.out.print(" " + matrix[i][j]); System.out.println(); } } } ______________________________________________________________ [실행결과 : ] 0 1 2 4 5 6 7 10 11 12 13 14