자바 기본 문법 1. 1 2. 3. 4.
기본 사항 자료형 형 변수와 상수 연산자 1
주석(Comments) ▶이해를 돕기 위한 설명문 ▶종류 // /* … */ /** … */ – 활용 예 javadoc HelloApplication.java
2
주석(Comments) /* File name: HelloApplication.java Created by by: Jung Created on: March 2005 */ /** documentation */ public class HelloApplication { // to the end of line public static void main(String args[]) { System.out.println("Hello, Java Application!"); } }
3
식별자(Identifier) ▶클래스, 변수, 메소드 등의 이름 ▶프로그래머가 정하는 이름
규칙 ▶대소문자 구분 ▶길이에 제한 없음 ▶영 대소문자, 한글, 숫자, ’_’, ’$’ 사용 숫자로 시작할 수 없음
▶키워드,, true, false, null은 불가 ▶키워 4
식별자 public class HelloApplication { String szMsg = "Hello, Hello, Java Application!"; public static void main(String args[]) { int iTest = 0; System.out.println(szMsg); } } 5
리터럴(Literal) ▶변수에 지정될 수 있는 실제 값 ▶기본형과 String은 S i 은 리터럴로 직접 값을 표현할 수 있음
6
리터럴(Literal) a = 2; x = 0xA; o = 055; b = 5L; f = 2.0f; 2 0f d = 2.0; e = 2.0E4; 2 0E4; t = true; c = 'd'; s = "Hello";
// int형 리터럴 // 16진수로 표현된 int형 리터럴 // 8진수로 표현된 int형 리터럴 // long형 리터럴 // fl float형 t형 리터럴 // double형 리터럴 // double형 리터럴, 리터럴 2.0 2 0 * 104 // boolean형 리터럴 // char형 리터럴 // Hello는 String 리터럴
7
메모리 영역 스택 영역 ▶메소드가 호출될 때 매개 변수, 변수 지역 변수, 반환 값을 저장하기 위한 메모 리 공간 ▶메소드의 실행이 끝나면 자동으로 사 라짐
힙 영역 ▶객체가 저장되는 메모리 공간 8
9
자료형(Data Type) ▶변수의 저장 값, 메소드의 반환 값, 적용 가능한 연산을 결정
기본( 기본(Primitive)형 )형 ▶기본형 변수에는 자료형의 값이 저장 됨
참 참조(Referenece)형 형 ▶참조형 변수에는 주소가 저장됨 10
자료형(Data Type) 기본(Primitive)형 변수
값
참조(Reference)형 참조형 변수 참조값
객체나 배열
11
기본형 분 분류
타입 입
크기 (byte) 문자 char h 2 논리 boolean 1 b byte 1 short 2 정수 int 4 long 8 float 4 실수 double 8
값의 의 범위 위 ‘\u0000’~‘\uFFFF’ ‘\ 0000’ ‘\ FFFF’ true 또는 false -128~127 128 127 -32768~32767 -2 231~2 231-1 1 -263~263-1 (+/-)약1.4E-45~3.4E38 (+/-)약4.9E-324~1.8E308 12
참조형 기본형을 제외한 모든 자료형 ▶클래스 유형이나 배열 변수 int anArray[]; [] String szString;
13
자료형의 변환 묵시적 시적 형변환 ▶작은 타입에서 큰 타입 타입으로 int i = 5; double d = i; int j = 10; System.out.println("j = " + j);
14
자료형의 변환 오류가 나는 경우 ▶큰 타입에서 작은 타입으로 float f = 5.5; 5 5; // error! (기본이 double)
명시적 형변환 ▶‘(자료형)’ ▶ (자료형) 형태의 형변환 연산자 사용 float f = (float )5.5; // ok!
16
17
18
변수와 상수 변수의 종류 ▶지역 변수, 매개 변수, 필드, 클래스 변수
상수의 선언 ▶키워드 final 사용 final int nConst = 3;
19
연산자 ▶C/C++과 유사
연산자의 종류 ▶산술, 비교, 논리, 비트, 대입, 형변환 등
20
연산자의 종류 구분
연산자 예
산술연산자
+
-
*
비교연산자
>
>=
<
논리연산자
&& ||
/
%
<=
단항+ 단항- ++ -==
!= instanceof
! 삼항 삼항?: & | ^
비트연산자
& | ^ ~
<< >> >>>
대입연산자
= += -= *= //= %= &= ^= | |= >> >>= <<= >>>=
형변환연산자 (자료형) 기타
[]
()
.
21
22
23
블럭 블럭 ▶명령문들을 중괄호로 묶어 놓은 것 public class BlockTest { // 블럭 public static void main(String args[]) { // 블럭 int a, a b, b c; { // 명령문 블럭; int d, e, f; a = a + b; { // 중첩된 블럭 d++; } } } } 24
제어문 (선택) if 문과 if-else 문 ▶조건에 따른 분기
switch 문 ▶다중 선택 구조 ▶조건은 은 정수값을 을 갖는 조건식
25
public class IfElseTest { public bli static t ti void id main(String i (St i args[]) []) { int n = Integer.parseInt(args[0]); if (n > 10) { System.out.println("10보다 크다"); } else if ( n < 3) { System.out.println("3보다 작다"); } else { S stem o t p intln("3보다 크거나 같고 System.out.println("3보다 10보다 작거나 같다."); } } } 26
public class SwitchTest { public bli static t ti void id main(String i (St i args[]) []) { int n = Integer.parseInt(args[0]); switch(n) { case 10: System.out.println("10입니다."); break; case 20: case 30: S t System.out.println("20이거나 t i tl ("20이거나 30입니다."); 30입니다 ") break; default: System.out.println("모르겠습니다."); break; } } } 27
제어문(반복) ▶조건이 true일 때 명령어를 반복 실행
for 문 for ((초기화식 초기화식 ; booleanboolean-수식 ; 반복식) 반복식) { 문장 }
28
제어문(반복) while hil 문 while (boolean(boolean-수식 수식)) { 문장 }
do-while 문 ▶조건 검사 전에 일단 명령문을 실행 do { 문장 } while (boolean (boolean-수식 수식); ); 29
break 문 ▶반복문을 빠져나갈 때 사용 break 문을 포함하는 가장 가까운 switch, for, while 문의 실행을 끝냄 break;
30
break 문 public bli class l BreakTest2 B kT t2 { public static void main(String args[]) args[]) { int n; { int n = Integer.parseInt Integer.parseInt((args args[0]); [0]); if (n > 10) break;; n = n * 10; } n = n * 20; System.out.println(n); System.out.println (n); } } 31
continue 문 ▶반복문 안에서 사용 ▶이후의 반복 명령문을 무시하고 가장 가까이 있는 반복문의 다음 반복을 시작
32
continue 문 ▶ hil 문 ▶while
▶f 문 ▶for 초기화식 조건 T
... continue; ... 반복식
F
조건
F
T ... continue; ...
33
34
35
36
배열 ▶같은 자료형의 데이터들을 모아 놓은 것 ▶자바에서 배열은 참조형 ▶배열의 선언 선언만으로는 크기를 지정할 수 없다 int[ ] a;
int a [ ];
선언한 뒤 생성 과정을 거쳐 사용함
37
배열의 초기화 배열의 초기화 ▶선언 후 초기 값을 지정하는 것 ▶선언과 동시에 초기값을 지정하 면 자동으로 메모리 공간이 확보 됨 int a [ ] = {1, 2, 3};
38
배열의 선언과 초기화 public class ArrayTest2 { public static void main(String args[]) { /* / 1차원 1차원 배열의 초기화 */ int anArray1[ ] = {1, 2, 3, 4, 5}; int[ ] anArray2 = {1, {1 2, 2 3, 3 4, 4 5}; /* 2 2차원 차원 배열의 초기화 */ int anArray3[ ][ ] = {{1, 2, 3}, {4, 5, 6}}; int[ ][ ] anArray4 = {{1, 2, 3}, {4, 5, 6}}; int anArray5[ ]; anArray5 A 5 = {1, {1 2, 2 3, 3 4, 4 5}; //에러; } } 39
배열의 생성 배열의 생성 ▶사용할 메모리 공간을 확보 ▶숫자의 경우 0으로, 0으로 나머지는 null 로 초기화됨 int a [ ]; a = new int[3];
40
배열의 생성 public class ArrayTest3 { public static void main(String args[]) { /* 1차원 1차원 배열의 생성 */ int anArray1[ ] = new int[5]; int[] anArray2 = new int[5]; int anArray3[ ]; anArray3 = new int[5]; /* 2 2차원 차원 배열의 생성 */ int anArray4[ ][ ] = new int[3][2]; int[ ][ ] anArray5 = new int[3][2]; } } 41
배열의 크기 anArray[0].length
배열이름.length
anArray.length
public class ArrayTest5 { public static void main(String args[]) { i t[ ][ ] anArray; int[ A … for(int i = 0;i < anArray.length;i++) anArray length;i++) ;i++) for(int j = 0;j < anArray[i].length;j++) ++) anArray[i][j] = i; } }
anArray[1].length
42
객체 배열 ▶배열의 원소가 객체인 배열 ▶배열 생성 외에 원소도 생성해야 함 Cat[ ] myCats = new Cat[5]; myCats[0] = new Cat("야옹이 Cat("야옹이", ", 2); … Cat[ ] myCats = { new Cat ("야옹이 ("야옹이", ", 2), …};
43
문자열 String 클래스 ▶참조형이지만 참 형이지만 기본형처럼 다룰 수 있도록 함 String szStr1 = "Java Application"; String szStr2, szStr3; szStr2 = "Java Applet"; szStr3 = szStr2; String szStr1 = new String( String(“Java”); Java ); 44
문자열 St i String 클래스 ▶+ 연산자 ▶ 문자열의 연결 다른 다른 기본형이나 참조형과의 참 형과의 연산 가능 ▶System.out.print ▶System.out.println 문자열로 변환하여 출력함 System out println( “ii = System.out.println( =” + i ); 45
46
47
48
49
50