1. 기본 사항 2. 자료형 3. 변수와 상수 4. 연산자

자바기본문법 1. 기본...

356 downloads 582 Views 982KB Size
자바 기본 문법 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