자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1
주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2
주석 (Comments) /* File name: HelloApplication.java Created 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, Java Application!"; public static void main(string args[]) { int itest = 0; System.out.println(szMsg); } } 5
리터럴 (Literal) 변수에지정될수있는실제값 기본형과 String 은리터럴로직접값을표현할수있음 6
리터럴 (Literal) a = 2; // int형리터럴 x = 0xA; // 16진수로표현된 int형리터럴 o = 055; // 8진수로표현된 int형리터럴 b = 5L; // long형리터럴 f = 2.0f; // float 형리터럴 d = 2.0; // double형리터럴 e = 20E4; 2.0E4; // double 형리터럴, 20*10 2.0 4 t = true; // boolean형리터럴 c = 'd'; // char형리터럴 s = "Hello"; // Hello는 String 리터럴 7
메모리영역 스택영역 메소드가호출될때매개변수, 지역변수, 반환값을저장하기위한메모리공간 메소드의실행이끝나면자동으로사라짐 힙영역 객체가저장되는메모리공간 8
9
자료형 (Data Type) 변수의저장값, 메소드의반환값, 적용가능한연산을결정 기본 (Primitive) 형 기본형변수에는자료형의값이저장됨 참조 (Referenece) 형 참조형변수에는주소가저장됨 10
자료형 (Data Type) 기본 (Primitive) 형 변수 값 참조 (Reference) 형 참조형변수 참조값 객체나배열 11
기본형 분류 타입 크기 값의범위 (byte) 문자 char 2 \u0000 ~ \uffff 논리 boolean 1 true 또는 false byte 1-128~127 127 정수 short 2-32768~32767 int 4-2 31 ~2 31-1 long 8-2 63 ~2 63-1 float 4 (+/-) 약1.4E-45~3.4E38 실수 double 8 (+/-) 약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; // 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, b, c; { // 명령문블럭 ; int d, e, f; a = a +b; { // 중첩된블럭 d++; } } } } 24
제어문 ( 선택 ) if 문과 if-else 문 조건에따른분기 switch 문 다중선택구조 조건은정수값을갖는조건식 25
public class IfElseTest { public static ti void main(string i args[]) { int n = Integer.parseInt(args[0]); if (n > 10) { System.out.println("10보다크다 "); } else if ( n < 3) { System.out.println("3보다작다 "); } else { System.out.println("3 t 보다크거나같고 10보다작거나같다."); } } } 26
public class SwitchTest { public static ti void main(string i args[]) { int n = Integer.parseInt(args[0]); switch(n) { case 10: System.out.println("10입니다."); break; case 20: case 30: System.out.println("20 t tl 이거나 30 입니다."); break; default: System.out.println(" 모르겠습니다."); break; } } } 27
제어문 ( 반복 ) 조건이 true일때명령어를반복실행 for 문 for ( 초기화식 ; boolean- 수식 ; 반복식 ) { } 문장 28
while 문 제어문 ( 반복 ) while (boolean- 수식 ) { } 문장 do-while 문 조건검사전에일단명령문을실행 do { 문장 } while (boolean- 수식 ); 29
break 문 반복문을빠져나갈때사용 break 문을포함하는가장가까운 switch, for, while 문의실행을끝냄 break; 30
break 문 public class BreakTest2 { } public static void main(string args[]) { } int n; { int n = Integer.parseInt(args[0]); if (n > 10) break; n = n * 10; } n = n * 20; System.out.println(n); 31
continue 문 반복문안에서사용 이후의반복명령문을무시하고가장가까이있는반복문의다음반복을시작 32
continue 문 for 문 while 문 초기화식 조건 T... continue;... 반복식 F 조건 T... continue;... F 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 차원배열의초기화 */ int anarray1[ ] = {1, 2, 3, 4, 5}; int[ ] anarray2 = {1, 2, 3, 4, 5}; /* 2차원배열의초기화 */ int anarray3[ ][ ] = {{1, 2, 3}, {4, 5, 6}}; } } int[ ][ ] anarray4 = {{1, 2, 3}, {4, 5, 6}}; int anarray5[ ]; anarray5 = {1, 2, 3, 4, 5}; // 에러 ; 39
배열의생성 배열의생성 사용할메모리공간을확보 숫자의경우 0 으로, 나머지는 null 로초기화됨 int a [ ]; a = new int[3]; 40
배열의생성 public class ArrayTest3 { public static void main(string args[]) { /* 1 차원배열의생성 */ int anarray1[ ] = new int[5]; int[] anarray2 = new int[5]; int anarray3[ ]; anarray3 = new int[5]; /* 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[]) { } } int[ t[][] ] anarray; for(int i = 0;i < anarray.length;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(" 야옹이 ", 2); Cat[ ] mycats = { new Cat (" 야옹이 ", 2), }; 43
String 클래스 문자열 참조형이지만기본형처럼다룰수있도록함 String szstr1 = "Java Application"; String szstr2, szstr3; szstr2 = "Java Applet"; szstr3 = szstr2; String szstr1 = new String( Java ); 44
문자열 String 클래스 + 연산자 문자열의연결 다른기본형이나참조형과의연산가능 System.out.print System.out.println 문자열로변환하여출력함 System.out.println( i i = +i); 45
46
47
48
49
50