Java Programming: การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (Java GUI)
Java Programming
-
Upload
graham-coleman -
Category
Documents
-
view
62 -
download
8
description
Transcript of Java Programming
Java Pro-gramming2013 Summer Vacation MIS Java Study Group
Chapter02. 자바 기본 프로그래밍2.1 자바 프로그램의 구조2.2 식별자2.3 자바의 데이터 타입2.4 자바에서 키 입력2.5 연산자2.6 조건문
1.
자바 프로그램의 구조자바 프로그램의 구성요소
클래스 정의
main() 메소드
메소드
변수 ( 지역 변수 )
실 매개변수
형식 매개변수
1.
자바 프로그램의 구조자바 프로그램의 구성요소
주석문
프로그램 실행에 영향을 미치진 않는다 .
프로그래머에겐 긍정적인 영향을 미친다 .
1.
자바 프로그램의 구조
Check Time
1 자바 클래스 바깥에 선언될 수 있는 것은 ?
2 다음 main() 메소드 정의에서 잘못된 것은 ?
3 main() 에서 화면에 “ Hi” 를 출력하는 클래스 Hi 를 작성하라 .
① 변수② 상수③ 메소드④ 전역변수⑤ ①~④ 모두 가능⑥ ①~④ 모두 불가능
static void main(String[] args){
…}
⑥
public 접근지정자가 빠져있다 .
public static void main(String[] args){
…}
2.
식별자
식별자 (identifier)클래스 , 변수 , 상수 , 메소드 등에 붙이는 이름
① 특수문자 (%, *, &, @, ^ 등 ), 공백 ( 탭 , space 등 ) 은 식별자로 사용할 수 없으나 ‘ _’, ‘$’ 는 사용할 수 있다 .
② 식별자로 한글을 사용할 수 있다 .③ 자바 언어의 키워드는 식별자로 사용할 수 없다 .④ 식별자의 첫 번째 문자로 숫자는 사용할 수 없다 .⑤ true, false, null 은 식별자로 사용할 수 없다 .⑥ ‘_’ 또는 ‘ $’ 는 식별자의 첫 번째 문자로 사용할 수 있으나 , 일반적으로 잘
사용하지 않는다 .⑦ 대소문자를 구별한다 .⑧ 길이 제한이 없다 .
식별자 이름 규칙
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
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 ‘_’ 나 ‘ $’ 이외의 특수 문자 불가
2.
식별자
자바의 식별자는 프로그래머들끼리 약속한 관례상클래스 이름 → 대문자의 명사로 시작
메소드 이름 → 소문자의 동사로 시작
변수 → 소문자의 명사로 시작
상수 → 대문자의 명사로 시작 , 전체를 대문자로 표기
관례를 따라서 프로그래밍하는 것이 자바 소스를 읽기 편하게 한다는 점에서 유익하다
2.
식별자
Check Time
1 다음 중 잘못된 변수 이름은 ?
① int 내변수 ;② int 1stVar;③ int var$$;
②
2 다음 중 클래스 이름으로 적합한 것은 ?
① GOODS② person③ MyDocument
③
3 값 30 을 가지는 정수 타입 상수 ALPHA 를 선언하는 선언문은 무엇인가 ?
final static int ALPHA = 30;
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
3.
자바의 데이터 타입
기본 타입 (basic type)
char 2 바이트 , Uni-code
String strName = “Yoo”;클래스명 클래스에 대한 래퍼런스
객체 또는 인스턴스식별자
문자열 리터널객체에 저장할 값
기본타입이 아니다
char c1 = ‘Y’, c2 = ‘o’, c3 =‘0’; 데이터 타입 변수 이름 저장할 값
3.
자바의 데이터 타입
기본 타입 (basic type)
byte
short
int
long
1 바이트 , -128~127
2 바이트 , -32,768~32,767
4 바이트 , --1
8 바이트 , --1
int price;데이터 타입 변수 이름
( 식별자 )
변수 선언
price = 29000;변수 리터럴
변수가 기억하게 되는 값식별자 없이 바로 값이 되는 상수들
price 란 정수 타입 변수에 저장되는 값
변수 초기화
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 형에 저장
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
3.
자바의 데이터 타입아니 그러면 그냥 모든 정수형 변수들은 i n t 형으로 선언하고 실수형은 doub le로 사용하면 되지 않냐 ?!
적은 정수형이나 가수부가 짧은 실수형일 경우 메모리를 적게 할당해주는 자료형을 사용 shor t 나 fl oat
메모리의 낭비를 줄이기 위해
물론 메모리를 최적화시키면서 개발하는 것이 옳지만자신의 개인컴퓨터가 시대에 맞지 않게 말도 안되는 저사양 PC 가 아닌 이상은 기회비용을 고려해서이런거 고민할 시간에 그냥 정수형은 자료형 i n t 를 쓰고 실수형는 doub le 를 써라
final double PI = 3.141592;
3.
자바의 데이터 타입
byte
타입 변환
intint
byte
int num1 = 48250;byte num2 = (byte)num1;
num2 = 116
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
4.
자바에서 키 입력
자바에서 스 트 림 은 일련의 데이터들이 일렬로 흘러가는 형태
자바에서는 데이터를 읽고 쓸 때 스 트 림 형태로 읽고 쓴다 .
자바에서는 System 클래스에 i n 이란 객체를 마련해 두었고 , 표준 출력장치인 모니터에 대해서는 out 이란 객체를 마련해 두었다 .
System. in 객체의 read( ) 메소드는 키보드에서 한 바이트를 읽는다 .
I nputSt reamReader 클래스는 바 이 트 스 트 림 을 문 자 스 트 림 으로 변환하는 기능을 제공한다 .
System.in
4.
자바에서 키 입력
System.inint a = 51088;int a = 48148;
(char)a = ‘ 자’ ;(char)a = ‘ 바’ ;
4.
자바에서 키 입력
Scanner 클래스를 이용한 키 입력
4.
자바에서 키 입력
Check Time
1 Scanner 클래스를 사용하기 위해 필요한 import 문은 무엇인가 ?
2 Scanner 를 이용하여 2 개의 정수를 키보드로 입력 받아 합을 출력하는 프로그램을 작성하라 .
import java.util.Scanner;Ctrl + Shift + O = 자동임포트
4.
자바에서 키 입력
Check Time
3 Scanner 를 이용하여 키보드로부터 임의의 문자열을 입력 받고 , 이 중 공백으로 분리된 단어들을 출력하고 입력된 단어의 개수를 출력하는 프로그램을 작성하라 .
5.
연산자
식과 연산자
연산의 종류 연산자
1. 증감 연산자 ++, --
2. 산술 연산자 +, -, *, /, %( 나머지 )
3. 시프트 연산자 (bit 값을 이동 ) >>, <<, >>>
4. 비교 연산자 (true or false) >, <, >=, <=, ==, !=
5. 비트 연산자 &, |, ^, ~
6. 논리 연산자 &&, ||, !
7. 조건 ( 삼항 ) 연산자 ?, :
8. 대입 연산자 =, *=, /=, %=, +=, -=
5.
연산자
예제 2-5
5.
연산자
비트연산자와 시프트 연산자아직 깊이 알려고 안 해도 된다 .이거 이해하고 알아봐야 이 책 끝날 때 까지 제대로 다루는 건 2 장에서뿐
비트연산자는 주로 하드웨어 프로그램에 많이 쓰인다 .
그러나 스스로 계산 연습을 해보기는 바라지만당장 여기서 크게 부담은 같지 말 것 .
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
5.
연산자
대입 연산자 , 증감 연산자오른쪽의 식의 결과를 왼쪽으로
변 수 자 신 의 값 을 증 감
5.
연산자
조건 연산자i n t x = 5;i n t y = 3;i n t s = (x > y)?1:-1;
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
6.
조건문
매우 중요단순 if 문
조건식
실행문장
truefalse
6.
조건문
if-else 문
조건식
실행문장 1
true false
실행문장 2
6.
조건문
다중 if 문조건식
1 실행문장 1
true
false
실행문장 n
조건식2
조건식m
실행문장 2
실행문장 m
true
true
false
false
6.
조건문
switch 문 식 == 값1
실행문장 1
예
아니오
실행문장 n
실행문장 2
실행문장 m
식 == 값2
식 == 값m
아니오
아니오
예
예
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(“ 홀수” );
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
6.
조건문
4 다음 리터럴 중에서 case 문에 지정하는 비교 값으로 사용할 수 없는 것은 ?
① 10② “A”③ ‘A’④ 5.4
Java 제 2 장 학습수고하셨습니다 .
열심히 공부해주셔서 고맙습니다 .
Q&A