Java Programming

38
Java Programming 2013 Summer Vacation MIS Java Study Group

description

Java Programming. 2013 Summer V acation MIS Java Study Group. Chapter02. 자바 기본 프로그래밍. 2.1 자바 프로그램의 구조. 2.2 식별 자. 2.3 자바의 데이터 타입. 2 .4 자바에서 키 입력. 2 .5 연산 자. 2.6 조건문. 자바 프로그램의 구조. 1. 자바 프로그램의 구성요소. 클래스 정의. 메소드. 형식 매개변수. main() 메소드. 변수 ( 지역 변수 ). 실 매개변수. 자바 프로그램의 구조. 1. - PowerPoint PPT Presentation

Transcript of Java Programming

Page 1: Java Programming

Java Pro-gramming2013 Summer Vacation MIS Java Study Group

Page 2: Java Programming

Chapter02. 자바 기본 프로그래밍2.1 자바 프로그램의 구조2.2 식별자2.3 자바의 데이터 타입2.4 자바에서 키 입력2.5 연산자2.6 조건문

Page 3: Java Programming

1.

자바 프로그램의 구조자바 프로그램의 구성요소

클래스 정의

main() 메소드

메소드

변수 ( 지역 변수 )

실 매개변수

형식 매개변수

Page 4: Java Programming

1.

자바 프로그램의 구조자바 프로그램의 구성요소

주석문

프로그램 실행에 영향을 미치진 않는다 .

프로그래머에겐 긍정적인 영향을 미친다 .

Page 5: Java Programming

1.

자바 프로그램의 구조

Check Time

1 자바 클래스 바깥에 선언될 수 있는 것은 ?

2 다음 main() 메소드 정의에서 잘못된 것은 ?

3 main() 에서 화면에 “ Hi” 를 출력하는 클래스 Hi 를 작성하라 .

① 변수② 상수③ 메소드④ 전역변수⑤ ①~④ 모두 가능⑥ ①~④ 모두 불가능

static void main(String[] args){

…}

public 접근지정자가 빠져있다 .

public static void main(String[] args){

…}

Page 6: Java Programming

2.

식별자

식별자 (identifier)클래스 , 변수 , 상수 , 메소드 등에 붙이는 이름

① 특수문자 (%, *, &, @, ^ 등 ), 공백 ( 탭 , space 등 ) 은 식별자로 사용할 수 없으나 ‘ _’, ‘$’ 는 사용할 수 있다 .

② 식별자로 한글을 사용할 수 있다 .③ 자바 언어의 키워드는 식별자로 사용할 수 없다 .④ 식별자의 첫 번째 문자로 숫자는 사용할 수 없다 .⑤ true, false, null 은 식별자로 사용할 수 없다 .⑥ ‘_’ 또는 ‘ $’ 는 식별자의 첫 번째 문자로 사용할 수 있으나 , 일반적으로 잘

사용하지 않는다 .⑦ 대소문자를 구별한다 .⑧ 길이 제한이 없다 .

식별자 이름 규칙

Page 7: Java Programming

2.

식별자

예약어 (reserved word)

자바에서 특별한 목적으로 사용하는 것

abstract continue for new switch

assert default if package synchro-nized

boolean do goto private this

break double imple-ments

protected throw

byte else import public throws

case enum instanceof return transient

catch extends int short try

char final interface static void

class finally long strictfp volatile

const float native super while

Page 8: Java Programming

2.

식별자

IDENTIFIER 사용여부 오류원인index ok

3_score error 숫자로 시작_Variable ok

Text10 ok

instanceof error keyword

$testVar ok

이름 ok

thisName ok

this error keyword

user name error identifier 내에 공백을 포함#abc error ‘_’ 나 ‘ $’ 이외의 특수 문자 불가

Page 9: Java Programming

2.

식별자

자바의 식별자는 프로그래머들끼리 약속한 관례상클래스 이름 → 대문자의 명사로 시작

메소드 이름 → 소문자의 동사로 시작

변수 → 소문자의 명사로 시작

상수 → 대문자의 명사로 시작 , 전체를 대문자로 표기

관례를 따라서 프로그래밍하는 것이 자바 소스를 읽기 편하게 한다는 점에서 유익하다

Page 10: Java Programming

2.

식별자

Check Time

1 다음 중 잘못된 변수 이름은 ?

① int 내변수 ;② int 1stVar;③ int var$$;

2 다음 중 클래스 이름으로 적합한 것은 ?

① GOODS② person③ MyDocument

3 값 30 을 가지는 정수 타입 상수 ALPHA 를 선언하는 선언문은 무엇인가 ?

final static int ALPHA = 30;

Page 11: Java Programming

3.

자바의 데이터 타입

기본 타입 (basic type)

boolean

char

byte

short

int

long

float

dou-ble

1 바이트 , true 또는 false

2 바이트 , Uni-code

1 바이트 , -128~127

2 바이트 , -32,768~32,767

4 바이트 , --1

4 바이트 , -3.4E38~3.4E38

8 바이트 , --1

8 바이트 , -1.7E308~1.7E308

Page 12: Java Programming

3.

자바의 데이터 타입

기본 타입 (basic type)

char 2 바이트 , Uni-code

String strName = “Yoo”;클래스명 클래스에 대한 래퍼런스

객체 또는 인스턴스식별자

문자열 리터널객체에 저장할 값

기본타입이 아니다

char c1 = ‘Y’, c2 = ‘o’, c3 =‘0’; 데이터 타입 변수 이름 저장할 값

Page 13: Java Programming

3.

자바의 데이터 타입

기본 타입 (basic type)

byte

short

int

long

1 바이트 , -128~127

2 바이트 , -32,768~32,767

4 바이트 , --1

8 바이트 , --1

int price;데이터 타입 변수 이름

( 식별자 )

변수 선언

price = 29000;변수 리터럴

변수가 기억하게 되는 값식별자 없이 바로 값이 되는 상수들

price 란 정수 타입 변수에 저장되는 값

변수 초기화

Page 14: Java Programming

3.

자바의 데이터 타입

기본 타입 (basic type)

boolean

char

byte

short

int

long

float

dou-ble

1 바이트 , true 또는 false

2 바이트 , Uni-code

1 바이트 , -128~127

2 바이트 , -32,768~32,767

4 바이트 , --1

4 바이트 , -3.4E38~3.4E38

8 바이트 , --1

8 바이트 , -1.7E308~1.7E308

상수의 종류 예 의미

소수형 1234.5, 0.0000987 가장 일반적으로 사용하는 실수형 데이터

지수형 1.2345E3, 0.987E-5 영문자 E 를 기준으로 앞에는 가수부 , 뒤에는 지수부를 기술함

원주율 3.141592 실수형 상수

i n tfl oatdou -b le

p i = 3 .141592f ;

p i = 3 .141592 ;

가수부의 숫자의 나열이 짧은 경우에만 float 형에 저장 , 그렇지 않은 경우엔 double 형에 저장

Page 15: Java Programming

3.

자바의 데이터 타입

기본 타입 (basic type)

boolean

char

byte

short

int

long

float

dou-ble

1 바이트 , true 또는 false

2 바이트 , Uni-code

1 바이트 , -128~127

2 바이트 , -32,768~32,767

4 바이트 , --1

4 바이트 , -3.4E38~3.4E38

8 바이트 , --1

8 바이트 , -1.7E308~1.7E308

Page 16: Java Programming

3.

자바의 데이터 타입아니 그러면 그냥 모든 정수형 변수들은 i n t 형으로 선언하고 실수형은 doub le로 사용하면 되지 않냐 ?!

적은 정수형이나 가수부가 짧은 실수형일 경우 메모리를 적게 할당해주는 자료형을 사용 shor t 나 fl oat

메모리의 낭비를 줄이기 위해

물론 메모리를 최적화시키면서 개발하는 것이 옳지만자신의 개인컴퓨터가 시대에 맞지 않게 말도 안되는 저사양 PC 가 아닌 이상은 기회비용을 고려해서이런거 고민할 시간에 그냥 정수형은 자료형 i n t 를 쓰고 실수형는 doub le 를 써라

final double PI = 3.141592;

Page 17: Java Programming

3.

자바의 데이터 타입

byte

타입 변환

intint

byte

int num1 = 48250;byte num2 = (byte)num1;

num2 = 116

Page 18: Java Programming

3.

자바의 데이터 타입

Check Time

1 자바의 기본 데이터 타입이 아닌 것은 ?

2 값이 365 인 YEAR, 30 인 MONTH, 7 인 WEEK 를 정수 타입 상수로 선언하라 .final int YEAR = 365, MONTH = 30, WEEK = 7;

① byte② double③ String④ boolean

3 다음 중 byte 타입 변수에 대입할 수 없는 것은 ?

256 127 0 -99

4 다음 중 기본 타입의 리터럴이 아닌 것은 ?

‘ 가’ , 012, 0x1A, “a”, ‘\b’, true, 0.23E-4

“a”( 문자열 리터럴 )

5 다음 수식의 결과 값은 ?

(byte) (128 + 128) + (int) 22.9

22

Page 19: Java Programming

4.

자바에서 키 입력

자바에서 스 트 림 은 일련의 데이터들이 일렬로 흘러가는 형태

자바에서는 데이터를 읽고 쓸 때 스 트 림 형태로 읽고 쓴다 .

자바에서는 System 클래스에 i n 이란 객체를 마련해 두었고 , 표준 출력장치인 모니터에 대해서는 out 이란 객체를 마련해 두었다 .

System. in 객체의 read( ) 메소드는 키보드에서 한 바이트를 읽는다 .

I nputSt reamReader 클래스는 바 이 트 스 트 림 을 문 자 스 트 림 으로 변환하는 기능을 제공한다 .

System.in

Page 20: Java Programming

4.

자바에서 키 입력

System.inint a = 51088;int a = 48148;

(char)a = ‘ 자’ ;(char)a = ‘ 바’ ;

Page 21: Java Programming

4.

자바에서 키 입력

Scanner 클래스를 이용한 키 입력

Page 22: Java Programming

4.

자바에서 키 입력

Check Time

1 Scanner 클래스를 사용하기 위해 필요한 import 문은 무엇인가 ?

2 Scanner 를 이용하여 2 개의 정수를 키보드로 입력 받아 합을 출력하는 프로그램을 작성하라 .

import java.util.Scanner;Ctrl + Shift + O = 자동임포트

Page 23: Java Programming

4.

자바에서 키 입력

Check Time

3 Scanner 를 이용하여 키보드로부터 임의의 문자열을 입력 받고 , 이 중 공백으로 분리된 단어들을 출력하고 입력된 단어의 개수를 출력하는 프로그램을 작성하라 .

Page 24: Java Programming

5.

연산자

식과 연산자

연산의 종류 연산자

1. 증감 연산자 ++, --

2. 산술 연산자 +, -, *, /, %( 나머지 )

3. 시프트 연산자 (bit 값을 이동 ) >>, <<, >>>

4. 비교 연산자 (true or false) >, <, >=, <=, ==, !=

5. 비트 연산자 &, |, ^, ~

6. 논리 연산자 &&, ||, !

7. 조건 ( 삼항 ) 연산자 ?, :

8. 대입 연산자 =, *=, /=, %=, +=, -=

Page 25: Java Programming

5.

연산자

예제 2-5

Page 26: Java Programming

5.

연산자

비트연산자와 시프트 연산자아직 깊이 알려고 안 해도 된다 .이거 이해하고 알아봐야 이 책 끝날 때 까지 제대로 다루는 건 2 장에서뿐

비트연산자는 주로 하드웨어 프로그램에 많이 쓰인다 .

그러나 스스로 계산 연습을 해보기는 바라지만당장 여기서 크게 부담은 같지 말 것 .

Page 27: Java Programming

5.

연산자

비교 연산자 , 논리 연산자비 교 연 산 자 는두 개의 피연산자를 비교결과 값 true, false 중 하나인 boolean 이 되는 연산자

논 리 연 산 자 는boolean 값끼리 연산을 하여 boolean 값을 결과로 산출하는 연산자

값 &&( 논리곱 ) ||( 논리합 )

false false false false

false true false true

true false false true

true true true true

값 !( 논리 부정 )

false true

true false

Page 28: Java Programming

5.

연산자

대입 연산자 , 증감 연산자오른쪽의 식의 결과를 왼쪽으로

변 수 자 신 의 값 을 증 감

Page 29: Java Programming

5.

연산자

조건 연산자i n t x = 5;i n t y = 3;i n t s = (x > y)?1:-1;

Page 30: Java Programming

5.

연산자

Check Time

1 다음 문장을 수행한 후 z 값은 ? 11

i n t x = 2, y = 10, z = 0;z = x++*2+--y-5+x*(y%2);

2 다음 문장을 실행하면 화면에 출력되는 값은 ?

System.out.println(8 >> 1);

4

3 다음 문장을 실행하면 화면에 출력되는 값은 ?

i n t opr = 4;System.out.println(opr++);

4

Page 31: Java Programming

6.

조건문

매우 중요단순 if 문

조건식

실행문장

truefalse

Page 32: Java Programming

6.

조건문

if-else 문

조건식

실행문장 1

true false

실행문장 2

Page 33: Java Programming

6.

조건문

다중 if 문조건식

1 실행문장 1

true

false

실행문장 n

조건식2

조건식m

실행문장 2

실행문장 m

true

true

false

false

Page 34: Java Programming

6.

조건문

switch 문 식 == 값1

실행문장 1

아니오

실행문장 n

실행문장 2

실행문장 m

식 == 값2

식 == 값m

아니오

아니오

Page 35: Java Programming

6.

조건문

Check Time

1 다음 문장에서 잘못된 곳은 ?

2 다음 소스를 실행했을 때 출력은 무엇인가 ? i 가 6 의 배수인 경우 “ 6 의 배수”를 , i 가 홀수인 경우 “홀수” 라고 출력하며 , 그 외 경우는 아무것도 출력되지 않게 하고자 한다 . 소스를 올바르게 수정하라 .

i n t i = 1;i f (i = 0){

i = i + 1;}

i n t i = 4;i f (i % 2 == 0){

if(i % 3 == 0)System.out.println(“6 의 배수” );

}else

System.out.println(“ 홀수” );

i n t i = 1;i f (i == 0){

i = i + 1;}

i n t i = 4;i f (i % 2 == 0)

i f (i % 3 == 0)System.out.println(“6 의 배수” );

e l s eSystem.out.println(“ 홀수” );

Page 36: Java Programming

6.

조건문

3 다음 소스의 출력은 ?

i n t option = 1;s w i t c h (option){c a s e 1:

System.out.println(“ 옵션 1”);c a s e 2:

System.out.println(“ 옵션 2”);c a s e 3:

System.out.println(“ 옵션 3”);b r e a k ;

d e f a u l t :System.out.println(“ 해당 없음” );

}

옵션 1옵션 2옵션 3

Page 37: Java Programming

6.

조건문

4 다음 리터럴 중에서 case 문에 지정하는 비교 값으로 사용할 수 없는 것은 ?

① 10② “A”③ ‘A’④ 5.4

Page 38: Java Programming

Java 제 2 장 학습수고하셨습니다 .

열심히 공부해주셔서 고맙습니다 .

Q&A