์ ๋ ๋ณต์ต
has a ๊ด๊ณ๋ ๋์์ธ๊ณผ ์ด๋ฒคํธ๋ฅผ ๊ฐ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ค. ์๋ก ํฌํจ
is a ๊ด๊ณ๋ ๋๋ค ํฉ์ณ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ณต์ก๋๊ฐ ์์น.
< ๊ฐ์ฒด์์ฑ >
(is a ๊ด๊ณ) ์์ ์ ์ด๋ค. (์์์ ๋ถ๋ชจ์ด๋ค)
(์์์ ๋ถ๋ชจ์ ๊ฐ๋ค=method์ ๋งค๊ฐ๋ณ์๊ฐ ๋ถ๋ชจ๋ผ๋ฉด ๋ชจ๋ ์์์ ๋ฃ์ ์ ์๋ค)
(method์์์๋ ๋ถ๋ชจ๋ฅผ ํตํด์ ๋ค์ํ ์์์ ์ฌ์ฉํ๋ค=๊ฐ์ฒด๋คํ์ฑ)
MyClass mc = new MyClass( );
WindowAdapter wa = new MyClass( );
WindowListener wl = new MyClass( );
(has a ๊ด๊ณ)
awt, swing์ ๋ฐฐ์ฐ๋ ์ด์ ๋ ํด๋์ค๊ฐ์ ์์ ๊ด๊ณ๋ฅผ ์ ์ ์๋ค.
OOP์ธ์ด์ 3๊ฐ์ง ํน์ง
์บก์ํ(์ ๊ทผ์ ํ์,getter/setter)
์์(๋ค์ค ์์,์ธํฐํ์ด์ค)
์ถ์ํ(์ถ์ํด๋์ค)
๋คํ์ฑ(์ค๋ฒ๋ผ์ด๋ฉ/์ค๋ฒ๋ก๋ฉ)
addWindowListener( new MyClass( ) );
api ์์๊ด๊ณ ๋ณด๋ ์ด์ = ๋คํ์ฑ์ ํ์ธํ๊ธฐ ์ํด
=========================
**Font
- ์ฌ์ฉ์์๊ฒ ์ง์ ๋ณด์ฌ์ง์ง ์๋ ์ปดํฌ๋ํธ
- ๊ธ๊ผด์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ
- java.awtํจํค์ง์์ ์ ๊ณต
- ์ ์๊ถ์ด ์์
์ฌ์ฉ๋ฒ)
1. Font ํด๋์ค ์์ฑ)
Font font = new Font ( ๊ธ๊ผด์ข
๋ฅ, ์คํ์ผ, ํฌ๊ธฐ );
*๊ธ๊ผด์ข
๋ฅ
awt์ ์ปดํฌ๋ํธ๋ Dialog, DialogInput, Monospaced, Serif , SansSerif 5๊ฐ์ง ๊ธ๊ผด๋ง ํํ ๊ฐ๋ฅ
swing์ ์ปดํฌ๋ํธ๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
*์คํ์ผ : Constant : PLAIN, BOLD, ITALIC, BOLD|ITALIC
*ํฌ๊ธฐ : ex) 15
2. Font ์ ์ฉ
์ปดํฌ๋ํธ.setFont( font๊ฐ์ฒด );
*์ ๋ณ๊ฒฝ - Color ํด๋์ค ์ฌ์ฉ
- ๊ธ์์ ๋ณ๊ฒฝ
setForeground ( Color ๊ฐ์ฒด );
- ๋ฐ๋ฅ์ ๋ณ๊ฒฝ
setBackground ( Color ๊ฐ์ฒด );
Color.์์๋ช
์ฌ์ฉ => ๋ค์ํ ์์ ํํ ํ ์ ์๋ค.
RGB Color ์ฌ์ฉํ๋ฉด ๋ค์ํ๊ฒ ๊ฐ๋ฅ
Color c = new Color ( 16์ง์GRB );
๋ผ๋ฒจ์ ์๊น์ด ์ ์ฉ ์๋๋ค. ๋ฐ๋ฅ์์ด ํฌ๋ช
ํ ์ปดํฌ๋ํธ๋ ๋ถํฌ๋ช
๋ ์ค์ ํ ํ ์์ ์ค์ ํด์ผํจ.
=======================
**Exception Handling
- ํ๋ก๊ทธ๋จ์์ ๋ฐ์ํ๋ ๊ฐ๋ฒผ์ด error์ ๋ํ ๋๋น ์ฝ๋๋ฅผ ๋ง๋๋ ๊ฒ.
- ๊ฐ๋ฐ์๋ ์์ธ์ํฉ์ ์์ธกํด์ผ ํ๋ค.
๊ฐ๋ฒผ์ด๋ฌธ์ Exception : ํ๋ก๊ทธ๋จ ๋์ ์ค์ Exception์ด ๋ฐ์ํ๋ฉด ์ฒ๋ฆฌํ ํ ๋ค์์ผ๋ก ์งํ ํ ์ ์๋ค.
๋ฌด๊ฑฐ์ด๋ฌธ์ Error : ํ๋ก๊ทธ๋จ ๋์ ์ค์ error๊ฐ ๋ฐ์ํ๋ฉด ๋ค์์ผ๋ก ์งํ ํ ์ ์๋ค.
*Compile Exception : bytecode๋ฅผ ์ ๋๋ก ์์ฑํ์ง ๋ชปํ ํ๋ฅ ์ด ์๋ ์ฝ๋์์ ๋ฐ์.
bytecode (x.class) ์์ฐ
๋ฌธ์ ๋ฐ์ : ์ปดํ์ผ์์ธ
๊ฐ๋ฐ์๊ฐ ๋ฐ๋์ try ~ catch๋ก ์์ธ ์ฝ๋๋ฅผ ๋ฌถ์ด์ผ ํ๋ ์์ธ
*Runtime Exception : CPU๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ๊ฐ์ ์ ์ฅํ ์ฝ๋์์ ๋ฐ์
bytecode๋ฅผ ์คํ (CPU์ฌ์ฉ, Memory)
๋ฌธ์ ๋ฐ์ : ๋ฐํ์์์ธ
๊ฐ๋ฐ์๊ฐ try~catch๋ก ๋ฌถ์ง ์์๋ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์๋ ์์ธ
๋ฌธ๋ฒ์๋ ๋ฌธ์ ์๊ณ , bytecode๋ ๋ฌธ์ ์๋๋ฐ ์๋ฌ ๋ฐ์
ArithmeticException : ์ ์๋ฅผ 0์ผ๋ก ๋๋๋ ๋ฐ์
ArrayIndexOutOfBoundsException : ๋ฐฐ์ด์ ์ธ๋ฑ์ค๊ฐ ์์ ๋ ๋ฐ์
NullPointerException : ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๊ณ ์ฌ์ฉํ ๋
NumberFormatException : ์ซ์ํํ๊ฐ ์๋ ๋ฌธ์์ด์ ๋ณํํ ๋
ClassCastException : ํด๋์ค๊ฐ์ ํ๋ณํ ์๋ชป ํ์ ๋
IndexOutOfBoundsException : ๋ฐฐ์ด ๋ฒ์ ๋ฒ์ด๋จ
----------------
๋ด ์์์ค์ runtime์ด ๊ปด ์์ผ๋ฉด runtime Exception
๋ด ์์กฑ์ค์ runtime์ด ์์ด Excaption์ ์์ ๋ฐ์ผ๋ฉด Compile Exception
----------------
=======================
**์์ธ์ฒ๋ฆฌ
- try~catch~finally, throws, throw 3๊ฐ์ง๋ก ํ๋ค.
์ฌ์ฉ๋ฒ)
method๋ฅผ ์ฌ์ฉํ ๋๋ฉด method๋ค์ throws๋ฅผ ํ์ธ
public void method๋ช
(๋งค๊ฐ๋ณ์) throws ์์ธ์ฒ๋ฆฌํด๋์ค,,,,{
๋ฌธ๋ฒ)
try{
์์ธ๋ฐ์์์์ฝ๋; //Runtime Exception, Compile Exception ๋ฐ์
}catch(์์ธ์ฒ๋ฆฌํด๋์ค ๊ฐ์ฒด๋ช
){
์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์คํ๋ ์ฝ๋..
}catch(์์ธ์ฒ๋ฆฌํด๋์ค ๊ฐ์ฒด๋ช
){
์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์คํ๋ ์ฝ๋..
} finally {
๋ฐ๋์ ์คํ๋ ์ฝ๋..
}
multi catch์ธ ์ํฉ์์๋ ์์ธ์ฒ๋ฆฌ ํด๋์ค์ ์์๊ด๊ณ์์ ์์์ด ๋จผ์ ์ ์๋์ด์ผ ํ๋ค.
๋ถ๋ชจ๊ฐ ์์๋ณด๋ค ๋จผ์ ๋์ค๋ฉด ๋ฐ์๋ ์์ธ๋ฅผ ๋ถ๋ชจ๊ฐ ์ก๊ธฐ ๋๋ฌธ์ ํ์ ์์ ์์ธ๋ค์ ์์ธ๋ฅผ ์ก์ ์ ์์ด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ค์ค catch์ํฉ์์๋ ์์ธ์ฒ๋ฆฌ ํด๋์ค์ ์์๊ด๊ณ๋ฅผ ์ ํ์
ํ์ฌ ๋ถ๋ชจ๊ฐ ์๋ก ์ฌ๋ผ์ค์ง ์๋๋ก ์ฃผ์ํ์ฌ ์ฝ๋ฉํ ๊ฒ.
**์์ธ ๋ฉ์ธ์ง ์ถ๋ ฅ
- ์์ธ์ถ๋ ฅ ์คํธ๋ฆผ
system.err.println("์๋ฌ ๋ฉ์ธ์ง"); // ์ดํด๋ฆฝ์ค์์๋ ์ถ๋ ฅ ๋ฉ์ธ์ง ๋นจ๊ฐ์์ผ๋ก ์ถ๋ ฅ
( ๋๋ ์๋ฌ๋ค. )
err ์คํธ๋ฆผ์ out ์คํธ๋ฆผ๋ณด๋ค ์ถ๋ ฅ์ด ๋ฆ์ ์ ์๋ค.
out = ์
๋ ฅ๊ฐ์ ๋ฐ๋ก ์ถ๋ ฅํ๋ค.
err = ์์ธ๊ฐ ๋ฐ์ํ๋ฉด Stack์ ์ ์ฅ๋๊ณ , Stack์ ์ ์ฅ๋ ๊ฐ์ ๊บผ๋ด์์ ์ถ๋ ฅํ๋ค.
- ๊ฐ๋จํ ๋ฉ์์ง๋ง ์ถ๋ ฅ
String msg = ์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช .getMessage();
- ์์ธ์ฒ๋ฆฌํด๋์ค์ ์์ธ๋ฉ์์ง ์ป๊ธฐ
์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช
.toString( );
- Stack์ ์ ์ฅ๋ ๋ชจ๋ ์์ธ๋ฉ์์ง ์ป๊ธฐ
์์ธ์ฒ๋ฆฌ๊ฐ์ฒด๋ช
.printStackTrace( );