13
7. 1. (hjkillcc. kangwon.ac.kr) : : (H /W, S /W) : Verlfler , Con trol , : : · Java Apø let App l icat ion Java Se rvlet Beans l JOK1.2 (Excapt 100) l Th read) AWT/ Sw ing l l l Java vs C++ Java C++ t C ;- ---- | @ 1 0S0f | - ; overwr i l - ‘ • JII j IVM (Java Vlrtual CPU' Loader) : Ity : -107- -

자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

자바 및 자바응

1않19. 7. 1.

김확훌

(hjkillcc .kangwon.ac.kr)

강원대확교 전기전자공학뿌

자바의 특정

• 톨획인 예프쩍 서비스 쩨공 : 내트팩를 톨하여 프로그램를 다용료드

• 획혁의 톨산 힘휴팀 환경 제공 : 를랫톨 (H /W, S/W) 특힐성

• 보안 기농 쩨공 : Byte∞de , Verlfler , A∞ess Con trol , keyt。이

• 끽빼 지양 언어 : C++와 당리 단송합

• 멀티스스혜드 지원 : (f운영체제가 아닌} 프로그램 언어 차원때서 제공

• 자동 메모리 판리 · 프로그래밍의 단순확

자바 프로그램 유혈

• Java Apø let • 월 를라우저톨 톨81여 .라이얻트애서 일월되는 프로그혈

• 를라이얻트의 요청얘 따리셔 서버로후터 다룰로드

• 뼈va App l icat ion

• 자신(local)의 디스크로부터 프로그혐흩 로뭘

• 자심의 시스댐 상얘서 수행

• Java Servlet • CGI 었 곁온 륙쩍의 서비스. 월 서버l 톨하여 서비스

• 서비스 요월 시마다 프로셰스가 아니라 쓰레드가 생성톨

• 때va Beans

• 자바로 만톨어진 휠포넌트

• 명횡홉틀 서비스 모톨

l

• 자바외 특정

• 짜바 프풍그웰 작성

• 자바 톨법 기초

• JOK1.2 추요 톨래스 • 예외 (Excapt 100)

l 섣혜드( Thread)

• AWT/Sw ing

• 이뺀트(Event)

• 애를잊(App let)

l 스트밑과 소헛

l 서를릿(Servlet)

l ‘R훌C

목 처

• •

Java vs C++

Java 냐 C++ 포인터가 없다 포인터가있다

톨랫를 특힐혀

순수 잭체 지힐 프료그래멍 쩍혜 지할 프로그혜멍 t C 표훈 대이터 타입

;-----| @ 및 하드예어에 따를 대뻔 타입

빼월 범위 검사 1 뻐

1 하드빼어와 0S0f 외흔하는 언어 차윈외 멀티쓰레드 지월 | 멀티태스킴 지월 -

메 오리 를 overwrlte힐 수 없다 ; 빼모리톨 overwr i te활 수 있다

찌혐파일 없이 톨래스. "~-I 메소드 ’ 째 혐파일이 필요하다 변수 접근 가능 l

자바 가상 기체와 바이트 코드

-‘ • 바이트 표드

• 혈홈터 하드빼어와 루흩81 JII 톨작하늠 월흩의 ’자바를 어빼톨리어”

j ‘IVM (Java Vlrtual 뼈뼈i뼈

• 바이트 코드톨 일앵시키는 ·소프트빼어로 구상된 CPU' • 넷스해이프 링흘 웰 브라쭈찌 내에 구힌되어 었다

• 바이트 코드와 ‘IVM과외 판계

.JVM이 바이트 코드를 일앵

• 를해스 로더 (Class Loader) : ÅI 앵시월 지바 를래스톨를 메모리얘 혈치

• 보안관리자(Seèur Ity 뻐nager) : 로혈 효스트의 지원를 믿천하게 흘리

-107-

-‘

Page 2: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

자 ’

자바 애풀리캐이션 작성 뼈 . 가상 기계와 바이트 코드

r

f

ν 파영명: Tesl.)\pp.iava E

cJass Tesl.)\pp {

public static void main(S머ng 따1Is[]) { System.outprintln( "H밍10 World'‘);

자에 g의‘씩

기‘기1

• 반드시 llain() 때소드톨 가지고 있다.

• 협파밑 : J avac Test..J빼. java

• 일행 : j ava Test...i빼

|

-

-

-L

V에fleI

Lo“{

R‘ J lIoch ....

。s.’-

LL 』톨£끄훌-

r ‘

자바 애플릿 작성 뻐 일 HTML

ν 파일명:TesLApplet.java <! Hello.htmJ 1> <HTl\Iα> <HEAD><TrILE>A Simple Applet <ífITLE><lHEAD> <BODY> <APPLET CODEE"Test...A마liet.cJass" WIDπi=l50 .또IGHT=25> <!APPLET> <ÆODY> <IHTML>

띠lport iava.a뼈et.AiiPlet;

import java.awt.Graphics; public cJass TesLAPlllet extel떠s Applet { public void init() {

setSizeU50. 25);

‘ I , public void 뼈int(Graphics Il) {

g.φllWS며ng(얀뻐10 World’. 50. 25); • 얘률헛 바이트 코드는 HTIl. 톰서톨 톨하여 다톨로드 된다

• java.aw t. Gr뼈hics 톨래스는 dr awS tr i 때() 매소드톨 제공한다 .

• init()는 얘톨릿이 므라우저에 나타날 때 처륨 자동으로 싫영되는 빼소드

、 • 힘파밑 : javac Test-App let.java

• 잉행 : appletviewer He llo.html

, 살행경과 자바 문법 - 잭채와 클레스

,

I • 순차쩍 프로그래밍은 톨로우 차트톨 흥싱으로 작성된다 .

• 송차혀 프로그래밍은 데이터 풍심이 아니라 톨학 흥싱외 프로그램이다.

뻐110빼빼|

• 잭혜 지향 프료그렘은 를래스 작성를 풍싱으료 이.어진다.

• 를래스란 어면 사를 혹은 개념를 기을하늠 단위이며 변수와 매소드로 구성

쥔다.

‘ • 변수는 를래스외 상태톨 나타내며 메소드는 톨래스외 톨짝를 나타낸다.

·ψletviewer Hello.hb JlI!!l 엄 톨 톨 lf i

-108-

Page 3: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

클래스 예 -

public class G,..ðe ( 11 톨혜스 갱외 int no..oLTest - 10; 11 맹배 연수 갱왜 6oat[] ar훌Ie- ’leW floaÚoo_oC Testl;

void input<ïnt j) ( 11 에소드 갱의 ν arac\e[ì]에 J4혹 i씌 갱객훌 입 혁

객쳐l 참조

• 잭체톨 섭언하연 잭체를 가리키는 객체 참조(Ob ject Refererκe)가 하나 만

틀어전다.

• 자바에서는 항상 객쩨 참조톨 톨혜서만 잭체를 액새스할 수 있다

(pòi nter 처혐)

• 실제로 잭셰톨 저장할 빼모리는 new 몸에 의해서 할당된다.

JOK 1 ;2 클래스

째키지 기 늄

java.applet 애를횟 구성얘 뭘요한 를래스톨 제공

java 뼈t 001톨 위한 확연 구성, 색 지정, 롤트 지정 률톨 지원

java.aw l. c이어 색상에 판련된 톨래스톨 제공

java.awt.datat 얘톨리케이션 사이에서 데이터톨 전솔할 수 있는 인터빼이스뻐 nsfer 쩨곰

java.awl.아ld OrllO-밍ld Orop 기능를 째공

lava. ‘’Nt . even I 41fT 힘포넌트톨의 이앤트 밭생과 처리톨 제공

java'.awt ’여1 1 흩E와 판련된 톨래스 및 인터빼이스톨 쩨룰

j ava . 8111 t..geoII 2차윈 그래픽 처리톨 위한 톨래스톨 제공

java.awt , 111 Input 뼈lhod Fu훌work를 위한 를래스 및 인터쩨이스톨 쩨공

• 17 .

/

객체와 클래스 -

• 객체 (object)는 를래스톨 사용하기 위하여 하나의 인스턴스를 만툴 것이

i n t 1; int 타입의 변수 i 톨 선언

• Grade lIyGrade: Grade 를해스 타입의 잭체 lyGrade톨 션언

l 새로운 룰래스톨 샘째힐 때 가늄하면 기폰의 를래스톨 활용하는 것이 필요

하며 이 때 훌래스 상속을 이용한다 •

• 상휘 를래스(superclass) : 상측의 모웰이 딛 원혜 를해스

하위 를래스(sLbclass) : 상혹받아 새로 만틀어진 를래스

• 하위 를래스는。연수와 메소드톨 후가하거나 변경할 수 있다.

인터때이스

• 자바에서는 안전한 프로그램 작성톨 뀌하여 다흥 상속툴 지월하지 않는다.

l 그 대신 자바에서는 인터빼이스( intertace)톨 제공한다. •

l 인터때 0;스는 를혜스와 같이 어떤 개념단위톨 정의한다. 인터뼈이스0에서는

• 메소드의 signature 선언만 가농하며 내용톨 구현하연 안된다

• 변수톨 선언한 혈우때는 모투 자동으로 상수가 띈다. ‘

• 인터매|이스의 변수나 애소드는 모룰 자동으로 Ilubllc한 혹성흩 갖논다 •

• 빼쩨

int.erface Trav,하..Korea { int llO_city _Korea = 250; v여d tii8VI혀KoreaO;

때키지 기 블

i ava. 8111 1. Il적F 비트업 이미지를 다루기 위한 를래스를 제융

j ava. awt. i.쩍e. re 이띠지톨 만를기 위한 률래스 및 인터빼이스 째공

nderable

java.awt .pr Int 프흰팅 API톨 위한 톨래스와 인터쩨이스톨 제공

java.awl.be하15 자바 beans 개월에 판련된 톨혜스톨 제공 iava.awt.뼈ancont

Bean Context~ 판련된 를래스 및 인터빼이스톨 제공 ext

java.lo 스트힘, 파일 륭톨 톨한 자바의 입훌혁를 쩨공

java.1‘II1g 자바의 기를 데이터 타입과 쓰레드 굉련 톨래스톨 제공

java.lang ,ref 함초형 잭쩨톨 다루는 톨래스톨 제공

java.lang. rellecí 객쳐l외 ref lect Ive 정보톨 얻는 기능률 째공

lava. l8th 수확혀 재산 기늄을 제곰

-109-

Page 4: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

:

때키지 기 를

;ava.nel 소갯, 뻐L 툴 내트의 프로그빼에 뀔요한 톨래스톨 째공

java. rlll 원칙 메소드 효훌(RslIO le llett빼 1 nvocat i아1) 기늘를 째공

java. 대1. 8ctlval i얘 IWI 객예 l성확톨 지원

)aV8.rlll.dgc 톨산 garb앵e-co llect ion를 위한 톨혜쇼 빛 인터빼이스 쩨공

)8V8 .rlli . regislry 뻐G regislry톨 휘한 톨래스와 인터빼이스톨 쩌공

java.rlll.sarvør 서버4ft 1111 구얻예 뭘요힘 톨혜스 및 인터때이스를 쩨공

java .88CUr Ily 보안 기농훌 위흰 톨래스 및 인터빼이스 찌를

java.88Curlty.acl java. 88Curlly 때키지톨 대신하는 톨래스 및 인터빼이스 혜혜

]aV8 . 훌lCurlty.cørt 인훌 보안 광리예 필요한 톨래스 및 인터때이스 빼훌

java. tly.inter RSA. OSA 률과 광련된 인터에이스톨 찌공 ’acøs

j8va.sacurity. 어쟁C 키 뭘 밑고리를 따라미터 스매 를혜스 및 인터빼이스 쩨공

KRt풀T9!I

때키지 기 능

javax . swi때 f i 1 ed100sa r I과일 선택률 위한 를래스 및 인터멕이스톨 제공

lavax.swing.plaf |∞k-an(Heel에 관련됨 톨래스 및 인터때이스톨 째공

javax.swlng.plaf .baslc 기본혀인 look-and-’881애 판련된 UI 잭째 생성를 지원

javax.swing.plaf. -a tal .atal look-and-feel얘 판련흰 UI 잭셰 생성를 지윈

javax . swl때 .plaf.뻐It i 특합 |∞k-and- feel때 굉혐윈 UI 끽빼 생성를 지원

javax.swlno.lable 스월의 헤이톨 판흰 .래스톨 정외

javax.swlng. tøxt 스명외 텍스트 판련 훌혜스톨 정외

javax .. swing.løxt . h 씨| htlll 빼스트 에디터톨 만톨기 위한 톨래스 제공

javax.swlno. tøxl.hllll .1 h씨 l 톨서의 parsar 기늘를 빼공

arsar

java~ . swino . text. r t’ Rlch-Text-Forll8 t과 판련된 애디터 기늘 째공

javax . swl때 . tree 스쩡외 트리 작성에 뭘요한 톨래스톨 째공

Wrapper 래스

• 기본 타입 변수툴툴 각각 대용되는 wrapper .를래스”톨톨 제공한다.

• 기본 타입 변수와 Wr때øer 흩래스

• 이것틀 어띤 메소드가 객체 타입만를 인자로 받는 경우에 필요하다 . 륙.

wrapper 톨래스를 사용하면 자바 기를 타입의 변수톨 ·객체 ‘로 추|글힐 수

있다 . •

때키지 기 블

java.sql ‘JlOC 때키지톨 빼공

j 8V8. løxt løxl. dale. n이l뼈r 동외 톨래스 및 인터때이스 채공

java.ulll .. 짜, 빽터, 스택 툴외 유‘리티 톨래스톨 쩨곰

java.utl l. jar j8r 파월톨 밑거나 • 수 있는 를해스톨 째공

java.ulll .zip ZIP파 GZIP 따밑 포뱃톨 원거나 쓸 수 있는 톨혜스톨 쩨공

javax . accøssibillt꺼 UI 힘포넌트와 협훌넌므예 정곤하기 위한 스의 정외

javax.swlno 기를혀인 스윌 혐포넌트 톨핵스톨 정외

javax.swlng.border 스명외 경져선(border) 특정톨 지정하는 톨래스

javax. swlr애 . colorc/1 스명에서 씨의 선빼 기늘를 쩨훌

oosar

]8vax . swi때 . 8Ven I 스윌에서 뭘요토 하는 이뺀트 타입과 리스너톨 정외

u1. 』뭘훌왜L •

때키지 기 블

javax.swing.undO 에디터와 앙은 애톨리케이션에서 Undol Redo 기농 째공

org.OIIII .COIeA 이IG COf뻐A API 톨 자바 염어로 월영하는 기늘를 제공

org.OI얘 .COI훌A. DynAny 인터쩨이스외 예외 처리톨 사를하기 위한 기률 쩌 DynAnyPack야g 공

org . OI얘 .CO뻐A. OF훌초기확 동얘서 받생하는 예외톨 처리하기 위한 기농

아훌Packagø 쩨공

oro.이찌 . COÆlA. por table 다톨 앤더의 아홉에서 구를시키기 위한 아톨 API 톨 체공 -oro . 이얘.COf훌A

사용자카 선언한 예외 처리를 지원 Ty뼈co뼈Package

。ro. 이빼.Co해8II lno Java IOL톨 위한 NaII lno Servlcø톨 제곰

oro .에o.C。해흩’ no. oro.OIι@해811lno 때키지의 에외톨 처리하는 기블를 제

Nilllin‘jCon textPack야뼈 공

String파 St r ingBuf fer

• String : 내용를 바꿀 수 없는 톨자엉

• Strln얘uffer : 내용을 바꿀 수 있는 문자얼

.예제

Strillll S Z ’ Test";

S • s.r빼Iace(’e’, ’ a’ );

• $는 "Tast ‘가 되는데 S가 가리키던 String 잭체외 내용이 바뀐 것이 아님

• $가 가리키던 스트링 잭체는 없어졌으며 'Ta$t ' 톨 저장하는 새로훈 String

객혜가 만톨어지고 이 새로훈 객체톨 참조 S가 가리킬

-110-

Page 5: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

GC(Garbage Co Ilect ion)

• 프로그래머가 빼모리 판리톨 하지 알도특 해훈다.

l 프로그램에서 더 이상 참조하지 않는 변수나 객쩨는 자동으로 gc의 대상이 된다.

• gc는 수시로 멀어나는 것이 아니며 때모리가 부쪽하다고 판단될 때때만 동

작한다.

.gc는 보톨 낯롤 우선 송위톨 갖는 빼그라훈드 작업으로 처리된다

• 프로그래머는 언쩨 gc가 잉앵되는지 월 수 없다.

try/catch

• try/cat야1 톰외 기톨쩍인 형태

try{

ι 예의가 앙생암 수 었는 쿄드

// 예의가 앙생하져 않£연 이 .톨용 갱상격으료 실앵 ) catch ( /- catch양 예의외 풍류 -/ ) (

// 위의 try 톨혹에서 예외 할생시 수앵앙 코드 ) finally {

// 예외 방생파 상판없이 항상 수앵시힐 코드

• 처리힐 예외가 많으면 필요한 수만를 catch() 문과 catch 톨혹을 여러 개

를 수 있다. 단, 셰부혀인 타입의 (륙. 하위의) 빼외 처리 톨특를 앞에 두

어야 한다.

얘외의 생성

• 빼소드 내애서 프료그래머가 고외로 예외톨 받생시필 수도 있다

• 낼생시월 예외의 객체톨 생성한 후 throw 키워드톨 이용한다,

• 빼채

void mO throws IOExc빼tion ( ... thmw new IOException(’ 1 am depres앞d!’);

•••

• 、--예 외 (Exception)

.c 언어에서는 오류톨 리턴 갑을 톰빼서 얼리는 방법을 많이 사용한다.

• 어떤 오류는 프로그램를 바로 흥료시키는 경우가 많다 .

• 자바에서는 각총 오류톨 체계혀으로 처리하기 위빼서 예외톨 도입하였다.

• 오홈 : 톨법이 훌못된 것으로 대부룬 힘파일 시얘 it견되는 것

• 예외 : 프로그램 일행 중에 어떤 를경이 흩롯되어 발생하는 비정상적민 톨작

l 때소드에서 예외톨 맡생시킨다(throw)라는 표현을 사용한다 .

• 얘외는 try/catch 훌으로 처리하거나 자신를 효흩한 메소드애재 이 예외의 처리톨 다시 throw 하여야 한다.

l1L w휠훌」

예외의 throws

• 예외톨 흰찌 매소드(m)에서 처리하지 않고 상위 때소드(0이에게 위입하는

c1ass Test { void 1(00 (

try(

new A.mO; ) catch(IOExce!찌on e) ( 1

}

c1ass A ( void mO throws 10Excep때n (

//1/0 예외가 ll-생앙 수 있는 싹업

쓰 레 드 (Thread)

• 벌티 프로세싱(멀티 태스킴) : 여러 작업 (prα:ess)를 명앵하여 진행하는 것

• 쓰혜드 : 톰틸찍으로 수행되는 하나의 순차혀인 제어의 흐톨

l 프로새스와 달리 섣헤드는 변수나 파밑흩 공유하기에 면리하다.

• 자바는 ”언어 차원”에서 멀티 쓰혜드톨 지원하므로 톨명체제애 홈속척이지

않다.

J

-111-

Page 6: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

쓰혜드 생성 (1) - Thread 래스 상속

• Thread 를혜스는 쓰혜드를 만톨고 판리하는 데 필요한 각홍 매소드톨 쩨공

한다.

.예제

cl삐ss A extends Thread { public void runO {

ν Thre뼈톨 상약한 톨헤스 A외 갱의

ι ~헤드 시짝시 셜’되는 예소드 Systerπαlt.print1n("TI!re뼈 A is runnina now .... );

pu빼ic c1ass Test ( pubilc s뼈c void main(Strina n aras) (

new AO.startO;

쓰래드의 상태

• 상태의 이톨를 떼몬 섣혜드인 thread sct빼uler외 판리톨 받는다.

nlw thread

삐Ive

runnab“ rødy

runnab‘ ‘e.p l‘ep() .nplnd I "'IItII힘 써뼈) bIOCk I bIOiJt 110

wa i t( ) 와 not i fy()

• 쓰레드를 사이의 톨신를 제공하기 위하여 사용된다.

야빼

l 어떤 때소드가 톨기화 메소드 또는 톨특 내얘서 다톨 동기화 부룰률 액셰

스하려고 하는대. 그 부톨이 다톨 쓰혜드때 외하여 사용흥이연 wait()톨 효

흩하여 자신톨 waiting 상태로 보낸다 .

• 동기확 뿌톨를 사용하던 며소드가 동기화뿌톨흩 .져 나오면서 not i fy()톨

효훌하연 이 notlfy()톨 밭롤 쓰래드는 walting 상태빼서 나와 ready로 강

수 있다.

/

t

쓰래드 생성 (2) - Runnable 민터때이스 구현

• 를래스 정외시에 Runn빼 le 인터빼이스톨 구혐한다고 선언하고 이 를래스외

쩍쩨톨 인자로 사용하여 Thread 객빼톨 만툴다

c1ass A impIements Runnable ( α뼈ic void runO (

SysterπqlLIxk1ωI(’Tbr흩삐 A is runnina now ... ’);

αlblic class Test ( pubilc static v여dm획n(Strina n 와as) {

Thread t • new Tbrei퍼(new A()); t.startO;

동기훨

• 멀티쓰혜드 표료그램에서 범수 , 빼소드 또늠 쿄드 톨.를 톨 이상외 쓰혜

드가 툴시에 빽셰스하지 뭇하도특 할 필요가 었다.

• 톨기획톨 채공하기 위빼서 모를 잭체는 lock Ilag(.α\ i tor)톨 제공한다.

• lock Ilag톨‘ 어띤 쓰혜드가 짙고 있으면 다톨 쓰레드는 이 액체톨 사용할

수 없다.

• lock I1애는 사용자가 찍접 빽셰스힐 수 없다 .

public synchronized void myMethodO ( ν 톰기확 ... 톨

AWT/Swing과 Windows 프로그래밍

• 자바는 떠J 1 톨 위하여 Abstract Winφw T,。이 k i t 때키지 iava.awl톨 제공

• AWT ISwing은 Wi ndows 프로그래밍과 틸리 언어 차원얘서 GUI 톨 제공

• AWT/Swing은 톨햇흩애 무판한 GUI 모양을 채공한다.

• AWT/Swi때에서 그림를 그러려면 항상 Gr뼈\i cs 객체가 뭘요하다 .

• Gr때hics 잭체 얻기

• paint() 메소드내에서눈 paint()의 민자로 밭온 Graphics 잭쩨I 시를

• 어떤 휠포넌트에서 작엉흥이면 getGraphlcs() 얘소드톨 효를

• Gra찌1 I않 잭~톨 가지고 있으면 이의 사를를 create() 매소드로 생성

-112-

Page 7: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

저수준의 그리기 메소드

• Fra뼈 • Panel • Dialog

렴포넌트와 컨태이너

• 혐포넌트: 001용 그팀 단위

• 컨태이너 ; 험포넌트가 화면에 보이려연 헌태이너때 일려야 한다. α .... Rκt

Oraw P어애 ... Dnow Þlc

주요 컬포넌트

• Checkbox

I;파ji짧iII쳐 • Button

• TextArea • Choice

뭔븐 뼈!딘휠 I1 • CheckboxGroup

• TextField

뼈 _" _ _ -.-1 ’

仁→← 뼈>iol llJß

Ftl9' 흔6κr t}{giPι ι 1 - - ;

! f샤 l. lClGJI

!Er--- - - - 빼!nlxll

E'j힌빽 C 8econCl

-;

안L 빼꾀엠l

|뀔 빼glxl

t , r" ,1enu .:꺼끼 F톰g틀1 홈경

• list • llenu

• FI ’eD ialog • Canvas

• L빼el

• ScrollPane • IlenuComponen t • MenuBar • μenu 1 tell • αleckboxllen비 tem

‘ 고 .은”쳐Q): I됩~wI

cl ... L

도펀포크 ‘ mwtll톨뻐): m엉엉어(D: 때마π:;r 고

-113-

,

Page 8: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

/

배치판리자 (layout Uanager)

l 휠포넌트톨 헌태이너에 배치에 쭈늠 톨래스

Bo rderLayout

’‘tI Clflllr EII‘

80UIh

이멘트 (Even t)

• 사용자가 힘포넌트 상에서 마우스 톨릭 동의 동작을 "1했을 때 각 동작oe

대하여 어떤 작업흩 처리하도특 한다,

• 이밴트 처리 힐차

1) 휠포넌트 힐계 시 이뻗트 처리 루틴 연곁시커 훈다.

2) 이뺀트 처리 루틴(내용)흩 구현한다.

• Listener 방식

• 가장 많이 시흥되논 이뺀트 처리 방식므로 휘잉 방식이라고 한다.

• 각 이멘트 빼로 이엔트 처리 ~틴흩 얻도로 구현빼 루고. 이핸트가 낼생

하면 빼달 LI ster뻐r이|개 이멘트 처리톨 휘잉하논 방식이다.

힘포넌트 Ttxt 111.

를J생 가능한 이앤트 타입

1Iou .. -IIollon

I. • • _. -

••

CardLayout

Gr id..ayout

Gr i cSaQl ayou 1

BoxLayout

홉훨團 ,

훌를훌 훌훌릎 「칙와봐μ훌4

이 밴 트 (Event) 예 제

바lIXll t java.awt..; import java.awt.event..; public c1ass Test ( public static void main(Strina [] aras) ‘{

Frarne f = new Frame(-);

l

Button b = new. Button("Test"); f.풍tSize(IOO, 10이;

f.add( ’Çenter", b); f.setVisiblè(true); b.addAc디onListener(new MyHar빼er{));

· ’

c1ass MyHar떠ler implements ActionListener ( pu버icvoid ac디onPerfonn뼈(Ac1ionEvent ae) (

Systeln.outprint1n(’Button event occured");

-

스 윌 (Sw ing) _ ‘ •

’ t ‘ •

• JDK1.2얘서 새로 추가된 기능 충 가장 흥요한 부분으로 자바의 "1약한 부

훈이었던 AWT의 GUI 기능을 보완한 것

• AWT가 nat i ve ∞de톨 사용하여 시스댐마다 힘포넌트가 조급색 다르게 보일

수밖때 없었던 것애 비하여 스행은 순수 100\ 자바로 작성되어 시스템이나

톨엉체제에 판계없이 항상 같롤 모슬,흩 북밑, 수 었다·‘f

• 빼T는 톨랫톨마다 얻도의 라이므러리톨 포함하고 있으므로 중탕(heavy) 험

포넌트라 뿌톨다 .

• 반면 스명은 순수 자바로 작성되어 톨랫톨 의흔혀인 라이브러리톨 가지고

다닝 필요가 없어 경황( 1 i 이, twei아'1) 험포넌트라 부를다,

-114-

ι

Page 9: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

AWT애서 기능이 확장된 스윌 렴포넌트 스윌에서 추가된 렴포넌트(일부분임)

스쩡 힘을E넌트 기 늄

JProgres꿇ar 어떤 작엉의 진뺑 정도툴 그래픽하게 보여훈다 JSlider 숫자의 입력를 슬라이드로 할 수 있게 한다

JTool Bar 메뉴와 비슷하나 floating힐 수 있다(도구 상자 동) JTab!e 펀리한 터l 이톨 작성을 지훤한다

JTabbedPane 제록이 있는 여러 화면을 겹치재 구성한다

JSpl i tPane pane를 투 영역으로 나눈다

JlnternaIFr.811엄 프혜잉 내애 프래임를 만흔다

JLayeredPane 여러 장의 화연를 훌철할 수 있재 한다

JTree 트리 구조로 함목를 나얼한다(디핵토리 구조 톨)

‘JO미 orChooser Co lor톨 선핵할 수 있게 환다

JToggl뼈utton 버를이 on , 011 상태톨 가진다

JSliders

스월 컴포년트

I ' ‘ 1 ’. , “ ‘ I • • ‘ I • , , I

20 ‘o 60 80

JPr얘rssBbar

Rm~11

JBu t ton

Borders

원 ~-t , ., .... 톰티[EJ I •

l 뺀펀-훤활뺀벤뺀힌 IR뻐Blill삐 .... 톨빼|마굶동iem·&*m .... -... _ ... . . . .. - --

--

-‘

*‘ >

11 1 ;

‘ ‘

띄 R머잉 j r갚 R回 m11

T∞ I Tips

‘ 1

” ’ r 1 ’ ! ’

서 ”

1 얘

n v

J

j "., "[.1 엽| •

Rool • ìilos

디 Un따 [)Wlnàows Nr [) Unlx

JIA히lU

JTable

JTree

Java 디 C.‘ 디뼈IC

Number Course 쁘뾰뾰딴 Electronlcs General c:r핸뚫빼i쩨l"Omfi Oraduate school

π μ

Page 10: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

애플릿 (Applet)

• 엄외의 효스트에게 자바 프로그햄톨 전달하여 싫를시킴 때 얘톨릿 혐태를

사용하면 편리하다.

• 얘률횟를 자바 가상 기계(빼)에서 힐홈되며 톨 E라루저에는 빼이 구혐

되어 있다.

l 얘톨릿은 Panel를 상흑받았으므로 자체가 헌태이너이면서

다.

협포넌트가 된

l 짜바 얘톨헛를 작성하려면 반드시 App let 톨혜스톨 상속밭아야 한다.

애플릿 (Applet)

• 얘톨릿의 다훈로드는 HTIl. 훈서톨 톰헤서 이루어지며 • 사용자는 HTIIL 폼서

애 다톨로드 힐 때톨릿 바이트 코드톨 연김해 투어야 한다 .

• 예재

<html> <heI피> </heI삐〉

<Ix퍼y>

<a따et code"H리JoWor1d.class width=lOO 뼈i"ht"lOO>

<1획꺼plet> <Ibc녕y>

<!htlT니〉

-

바이트 스트립의 저수준 입훌력

-• 바이트 스트림은 크게 |nputstreal과 Ou tputStre8111 두 가지로 나누어진다 .

• 예제

unpoπ Java.IO.*; c1ass Test ( public static void main(StringO IIIlIS) {

StriOiBuffer buf = new StriOKBuffer(}; int ch = 0; try(

W비le((ch " Systern.in πad()) != -1) {

buf.81'Pð삐((char)ch);

}ca압\ (IOException e) ( } System.out.prinψ\(bI!f);

ν 한 바이트씩 얽융 // 스트링 버왜에 추가

// 표톨 훌혁 (OutαltS야am)

• 애플릿의 동작

public CI앓s Test ex야1녕S jav&a짜lIet.AppIet . ( public v<여dinitO{...)

// 예를엇이 료드 되거나 찌 료드 를 예 실앵되논 iiI.드 pu버ic void startO { ... 1 ν 에톨릿이 료드 획거나 사용자가 제 빵훌뤘훌 예 상예

public void stop(} { … } // 예를릿이 었논 찌이지톨 여나거냐 에 브라우저톨 。}이혼화 할 빼 상앵

public void destroyO ( ... ) // 톨 브라우져톨 륭를할 예 실영

스트립과 입

• 스트월 톨래스 흉류

Bt -,

• 바이트 스트월 : 바이트(8blt) 단휘의 일흩획훌 지원

• 톨자 스트헐 : 유니코드(l6b i t) 단위의 밑흩혁흩 지원

• 스트립을 각각 다률과 길이 저수훈과 고수훈으로 나누어진다 .

• 저수출 입훌획 : 바이트 또논 문자 단위의 단송힌 잉흩혁

• 고수훈 밑훌역 : 자바의 기혼 면수 티입 단위 (In1. double 동) 및 다양한

방식의 잉훌획 지원

• 파밑로외 업훌력를 지원하기 위한 톨래스

• Fi te 흩래스 . 파밑의 경로(palh)톨 다후는 를래스

• FiI아escriptor 를래스 : 파밑의 축성흩 다루는 를해스

• Ranc빼1AccessF i 1 e 를래스 . 편리한 (일반) 피일 잉훌획를 지원하는 를래

J ‘

바이트 스트립의 파일 입훌력

• 파일률 저9-훈외 바이트 스트림으로 보이게 하기 뀌하여 InputStream과

Ou tputStre에1의 하위 톨래스로 Fi lelnputStreall과 F i leαJtpu tS t ream을 제공

l 얘제

피1mn javaio.*; c1ass Test ( public static void main(Strin"O IIIlIS) throws IOException (

InputStream is " new FileInputStr빼m(lIIlIs[Oj); int total • 0; W피1e{is.readO !~ -1) total+치

System.OULprintln("The fùe has ’ + total + ’ byteS.’);

-116-

i

Page 11: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

바이트 스트림의 고수준 입 력 01 aI .., 고수준 입

• 고수훈 입훌력률 위하여 ‘Fi I ler InpulStream과 FlllerOulputStre삐를 채공 피1POrt jav.a.io .• ; class Test ( public staùc void main(String 0 8Tis) throws IOExcepùon (

File f = new File("testoct'’); // File 객 셰 생 성 FileOutputScr빼m fos ,. I)ew FiIeOutputStream(f);

DataOutputStream dos = new DataOutputStream(fos); FileIrψutStream fis z new FileIr삐ltStream(f);

Dataln‘lUtStream dis = new DatalnputStream(fis); dos. writeInt(3); / / int 타입 으료 쏘기 int x a dis.re빼IntO; // int 타업으료 엄기 System.outprintln(x); / / 확연 .획

• F i I ter I nputSt r없l의 하위 톨래스

Bu’ feredlrψutSI re8l1 11 버퍼톨 제공하여 뼈르게 입력 DatalnαJIStr빼• 11 자바 기톨 때이터 타입외 입력 처리 Li n배에ber I빼JtStream 11 훌당위외 입력를 처리 PushbacklnputStrea- 11 데이터톨 다시 얽룰 수 있도특 버펴링

의 하위 톨래스

Bu f fer edOutαItStre81 11 버펴톨 제공하여 빠르게 흩혁 Dat뻐utαJtStre8l1 11 자바 기를 데이터 타입의 흩력 처리 Pr I ntStre빼 11 표훈 훌력 (Syste.out , Syst8l .in) • 휘얘서는 한번에 4 바이트씩 쓰고 원는다

문자 스트힘 판련 래스 자바 소켓

• 소켓(socket) 인터뼈이스란 TCPIIP톨 이용하는 프로그암을 작성할 수 있는

뻐|로 TCP나 UOP 또는 IP 찌흥를 찍접 이용할 수 있다.

• 자바도 BSO 유낙스 쇼햇(socket) 또는 윈도우 소헛(Winsock)과 같은 소켓

API 톨래스톨 지원한다 .

• 소켓 판련 톨래스는 java.net 때키지가 쩨공하는 대 연흩혈 서비스(TCP)톨

위하여 Socket과 Se rverSocket 톨래스가 있므며, 비연곁형 서비스(lDP)톨

위하여 Datagraκ~et파 Da tagra .. Packet이 있다.

후’

“ -

ui. 」뼈탤」

서블릿 (Serv le t) OayTime 얘| 져l

μ 소뱃 를현 예키져 바φoπ javamt·; impmt javam--; pubtic CI앓s DayTime(

public staùc void main(StringO 8Tis) ( tty(

ν 소옛 생생 Soc~t socket = new Socket(’210. 115.36.lZ7" , 13); ν 예이허톨 옐율 스트팀 생생

• 쓰레드로 구톨되므로 초기화 오버빼드가 없고. 사용자 수가 훌가하더라도

시스댐 성놓이 비려하여 감소하지 밟는다 .

• 서톨릿은 서버애서 싫g되는 자바 때키지이다.

• 얘톨횟과 달리 서톨릿톨 룰라이언트 서버 프로토톨애 구애받지 않고 자유

로톨 프로토톨률 이용할 수 있다. ‘

Buffer혀Readn in " new BufferedReI빠er(

new h삐ltStreamReader(socketgetInputStream()) ); Stril필 Sσ a În.lEadJjneO; /.' 빼이터톨 위용 Systern.outprintln(str);

)ca띠l(Excepùon e) ( System.이tpr;ntln(e); 1 • J뻐C와의 연톨 : ‘빠3c와 서톨릿를 사용하연 OOMS에 특틸혀인 프로그혐률

엉재 작성할 수 있다. (찌 힘파밑 없이 일g이 가능)

• 기흔의 자바 API톨 모두 사용할 수 있다.

-117-

/

Page 12: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

r

서불릿의 동작

11 Servlet loaded?

1. HTIP므잎!¥

Browser ‘ 5.HTIP

(WWWCi뻐nt) Server

outøut ‘

1 . 톨라이언트 톨 브라루저에서 서를릿으로 요구톨 보냉다.

2. HT I P 서버는 요구톨 받아 Invoker serv l et룰 수g한다.

3. I nvoker는 servlet외 서비스 때소드톨 효훌한다.

4. 곁과톨 HTTP 서버로 보냉다.

5. HTTP 서버는 를 E라우저에게 겉과톨 톨려훈다.

JDBC

Invoker

3

service Thread

l ‘빠훌C는 자바로 표료그홉에서 SQl 톨를 바로 사용할 수 있도특 하는 API 톨

를 제공한다.

• .JlBC톨 사용하면 CBHS 톨류에 구얘받지 않고 대이터빼이스 용용 프로그홈 을 엄게 작성할 수 있으며 프로그g의 효흰성과 이여성 (por tabi I i ty) 이 훌

• ‘빠3c톨 사용함으로써 져바언어의 특정인 ”프로그햄의 이식성‘률 데이터베

이스 융용시에도 를용힐 수. 있게 된 것이다.

JDBC 사용 얘 ‘

// 드라이버 션에 않il1ll driver_class = ‘ oracle.jdbc.driver .000000000ver"j Strina url .. "jdbc:oll.cle:thin:syJeEνsyJee용202.31.154.57:1521:0RA8":

ν 드라이버 료드

CJass.forName<driver_class);

ι 연톨훌 뀌환 connec뼈i 찌씨 생생

C이1IRtd여1 ∞nn:

conn = ÐriverManqer.l(etConnectiOll(urJ);

ν query톨 휘 한 Sta야uws.t톨 생생

Statement stmt .. conn.cleateStatementO;

// query 수’ Res띠tSet π .. stmtexecuteQuery(‘SEI.FCT a. b. c FROM MyTable'’);

서률릿과 CG I의 쳐이정 i

l 서를릿롤 CGI와 당리 톨라이언트외 요청마다 프로세스톨 생성하지 하는다.

• 각 요청를 쓰레드로 처리하묘로 효과쩍인 서비스가 가능하다 .

l 서를릿틀 에모리에 상추하여 각 요청을 처리하지만 CGI는 인터프리터 함식

으로 처리된다.

l 서톨릿 앤진를 톨하여 보안 기농흩 쩨공할 수 있다.

JDBC 사용법

l ‘JlBC톨 사용 흩차

1) 떼이터빼이스와외 연길

2) s(l. 톨 처리

3) 훌과 보기

JDBC 사용 빼 (계속)

// . :f.확 보기 whiJe (rs.next()) (

int X .. rs.l(etlnt(’ a’); Stri,명 S .. π.l(etStril1ll(’b’);

n애It f .. rs.l(etFIoat(’c’);

ι

• •

-118-

Page 13: 자바 및 자바응krnet.or.kr/board/data/dprogram/457/T132_%B1%E8%C8%AD%C1... · 2012-07-16 · 자바 및 자바응 1않19. 7. 1. 김확훌 (hjkillcc.kangwon.ac.kr) 강원대확교

“ ·

3-t ler 라이얻트-서버 모웰

• 서버외 기놓를 톨리하여 톨라이언트외 용용 처리톨 담당하는 lI idl e-tler톨

두고 톨라이언톨는 이 Ilddl e- ller 서버와 톨신를 한다.

I Mlddle-t ier 서버는. 뻐$와 감이 특정한 학업만 수명하는 칙훌 서버와 톨

신를 하여 곁파톨 얻흘 후 룰라이언트에게 곁과톨 전당한다.

• 운t ier외 톨라이언E-서배 모멸외 기농

• Ti er 1: 사용자 윈터빼이스톨 당당하는 톨라이언트로

• Tier 2: HIIP나 코바톨 지원하는 훌훌처리 서버

• Tler 3: 야뿔와 람은 사톨자기 획훌쩍으로 원하는 기늘를 수톨흩 서버

• 웅tier 보헤이 2-tier 모밀보다 안정쩍이고. 유연하며 양alable 하다.

자바의 미래

• 언어가 단숭 명료하므로 빼우기가 업다.

• 인터넷 용용 프로그햄 언어로서 확고한 위치톨 차지하고 었다.

l 끽셰지향 프흩그혜밍 언어로서 더육 낼리 사용훨 것이다 .

• 빼외 처리속도가 현쩨 겉믿톨이나 이것를 룰 빼훌됨 것으로 예상된다.

l 힐톨

http://leleα)1. kangwon. ac. kr

hjkilllcc. 뼈1I01l0n 없 .kr

f

I

-119-