1) ํจํค์ง
1-1) ํจํค์ง์ ์๋ฏธ
- ํด๋์ค ํ์ผ์ ๋ฌถ์ด์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋จ์ผ๋ก ํ์ผ ์์คํ ์ ํด๋๋ฅผ ์ด์ฉ
- ํจํค์ง๋ง๋ค ๋ณ๋์ ์ด๋ฆ ๊ณต๊ฐ์ด ์๊ธฐ๊ธฐ ๋๋ฌธ์ ํด๋์ค ์ด๋ฆ์ ์ฌ์ฉํ๋๋ผ๋ ๋ค๋ฅธ ํจํค์ง์ ์์ฑํ ํ ํตํฉํ๋ค๋ฉด ํด๋์ค ํ์ผ์ด ์ค๋ณต๋์ง ์๋๋ค
- ํด๋์ค๋ฅผ ํจํค์ง ๋จ์๋ก๋ ์ ์ดํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข ๋ ์ธ๋ฐํ๊ฒ ์ ๊ทผ์ ์ ์ดํ ์ ์๋ค
** ๋ํ์ ์ธ ํจํค์ง
- java.lang ํจํค์ง๋ import ๋ฌธ์ ์ ์ธํ์ง ์์๋ ์๋์ผ๋ก ์ํฌํธ๋๋ ์๋ฐ์ ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ๋ชจ์๋ ๊ฒ
- java.awt ํจํค์ง๋ ๊ทธ๋ํฝ ํ๋ก๊ทธ๋๋ฐ์ ๊ด๋ จ๋ ํด๋์ค๋ฅผ ๋ชจ์๋ ๊ฒ
- java.io ํจํค์ง๋ ์ ์ถ๋ ฅ๊ณผ ๊ด๋ จ๋ ํด๋์ค๋ฅผ ๋ชจ์ ๋ ๊ฒ
1-2) ํจํค์ง ์ ์ธ
- ์ฃผ์๋ฌธ์ ์ ์ธํ๊ณ ๋ ๋ฐ๋์ ์ฒซ ํ์ ์ ์ธ
- ํจํค์ง ์ด๋ฆ์ ๋ชจ๋ ์๋ฌธ์๋ก ๋ช ๋ช ํ๋ ๊ฒ์ด ๊ด๋ก์ด๊ณ ์ผ๋ฐ์ ์ผ๋ก ํจํค์ง ์ด๋ฆ์ด ์ค๋ณต๋์ง ์๋๋ก ํ์ฌ์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ญ์์ผ๋ก ์ฌ์ฉํ๋ค
1-3) ํจํค์ง์ ์ฌ์ฉ
- ๋ค๋ฅธ ํจํค์ง์ ์๋ ๊ณต๊ฐ๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํจํค์ง ๊ฒฝ๋ก๋ฅผ ์ปดํ์ผ๋ฌ์๊ฒ ์๋ ค ์ฃผ์ด์ผ ํ๋ค.
- ํจํค์ง ์ด๋ฆ์ ์ ๋์ด๋ก ์ฌ์ฉํด ๋ค๋ฅธ ํจํค์ง์ ์๋ ํด๋์ค๋ฅผ ์ด์ฉํ๋ค. ex) new com.usa.people.Lincoln();
- ์๋ฐ๋ ์ฌ์ฉํ๋ ค๋ ํจํค์ง ๊ฒฝ๋ก๋ฅผ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ฌ์ ์๋ ค ์ค ์ ์๋๋ก ๋ค์๊ณผ ๊ฐ์ด import ๋ฌธ์ ์ฌ์ฉํ๋ค
- import ๋ฌธ์ ์์ค ํ์ผ์์ package ๋ฌธ๊ณผ ์ฒซ ๋ฒ์งธ ํด๋์ค ์ ์ธ๋ถ ์ฌ์ด์ ์์นํ๋ค
package java04;
import com.usa.people.Lincoln;
public class ShowWorldPeople {
public static void main(String[] args) {
Lincoln greatman = new Lincoln();
}
}
- ์ปดํ์ผ๋ฌ์ Lincoln ํด๋์ค์ ๊ฒฝ๋ก๋ฅผ ์๋ ค์ค๋ค
- import ๋ฌธ์ผ๋ก ๊ฒฝ๋ก๋ฅผ ์๋ ค ์ฃผ์์ผ๋ฏ๋ก com.usa.people์ด๋ผ๋ ๊ฒฝ๋ก ์ ๋ณด๋ ํ์ ์๋ค
2) ์์ ํด๋์ค์ ๋ถ๋ชจ ์์ฑ์
- ์์ฑ์๋ ํด๋์ค ๋ฉค๋ฒ๊ฐ ์๋๋ฏ๋ก ์์ ํด๋์ค์ ์์๋์ง๋ ์๋๋ค
- ํ์ง๋ง ๋ถ๋ชจ์๊ฒ์ ๋ฌผ๋ ค๋ฐ์ ๋ฉค๋ฒ๊ฐ ์๋ค๋ฉด ์์ ํด๋์ค๋ ์ด๋ฅผ ์ด๊ธฐํํ๊ธฐ ์ํด ๋ถ๋ชจ ํด๋์ค์ ์์ฑ์๊ฐ ํ์ํ๋ค
- ์์ ์์ฑ์์ ์ฒซ ํ์ ๋ถ๋ชจ ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋๊ฐ ์๋ค
3) ์์๊ณผ ์ ๊ทผ์ ์ด
3-1) ์ ๊ทผ ์ง์ ์์ ์ ๊ทผ ๋ฒ์
- ์๋ฐ๋ ํด๋์ค์ ํด๋์ค ๋ฉค๋ฒ๋ฅผ ๋ค๋ฅธ ๊ฐ์ฒด์ ๊ณต๊ฐํ๋ ๋ฒ์๋ฅผ ๋ช ์ํ๋ ค๊ณ private, protected, public์ด๋ผ๋ ์ ๊ทผ ์ง์ ์(access modifier)๋ฅผ ์ ๊ณตํ๋ค
์ ๊ทผ ์ง์ ์ | ๋์ผ ํด๋์ค | ๋์ผ ํจํค์ง | ์์ ํด๋์ค | ๋ค๋ฅธ ํจํค์ง |
public | o | o | o | o |
protected | o | o | o | x |
์์(default) | o | o | x | x |
private | o | x | x | x |
- ๋ค๋ฅธ ํด๋์ค์ ๊ณต๊ฐํ๋ ค๋ฉด public, ์์ ํด๋์ค์๋ง ๊ณต๊ฐํ๋ ค๋ฉด protected, ๊ณต๊ฐํ์ง ์์ผ๋ฉด private์ผ๋ก ์ง์ ํ๋ค. ์ ๊ทผ ์ง์ ์๋ก ์ง์ ํ์ง ์์ ๋๋ ํด๋น ํจํค์ง์์๋ง ๊ณต๊ฐ๋๋๋ฐ, ์ด๋ฅผ ๋ํดํธ ์ ๊ทผ ์ง์ ์ด๋ผ๊ณ ํ๋ค
- private ๋ฉค๋ฒ๋ ์์ ํด๋์ค์ ์์๋์ง ์๋๋ค
- ํด๋์ค ๋ฉค๋ฒ๋ ์ด๋ค ์ ๊ทผ ์ง์ ์๋ก๋ ์ง์ ํ ์ ์์ง๋ง, ํด๋์ค๋ protected์ private์ผ๋ก ์ง์ ํ ์ ์๋ค
- ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ ๋ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ณด๋ค ๋ ์ข์ ์ ๊ทผ ์ง์ ์ ํ ์ ์๋ค.
4) final ํด๋์ค์ ๋ฉ์๋
4-1) final ํด๋์ค
- ๋ ์ด์ ์์ํ ์ ์๋ ์ข ๋จ ํด๋์ค๋ฅผ ์๋ฏธ
- final ํด๋์ค์ ๋ชฉ์ ์ ์์ ํด๋์ค๋ฅผ ์ ์ํด ๋น๊ณต๊ฐ ์ ๋ณด์ ์ ๊ทผํ๊ฑฐ๋ ์์คํ ์ ํ๊ดดํ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๋ ๊ฒ์ด๋ค
- ์๋ฐ ํ์ค API๊ฐ ์ ๊ณตํ๋ String ํด๋์ค๋ ๋ํ์ ์ธ final ํด๋์ค๋ก ๋ค์๊ณผ ๊ฐ์ด ์์ ํด๋์ค๋ฅผ ์ ์ธํ๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค
ex) class ChildString extends String {..} => String์ final ํด๋์ค์ด๋ฏ๋ก ๋ถ๋ชจ ํด๋์ค๊ฐ ๋ ์ ์๋ค
4-2) final ๋ฉ์๋
- final ๋ฉ์๋๋ ๋ ์ด์ ์ค๋ฒ๋ผ์ด๋ฉํ ์ ์๋ ์ข ๋จ ๋ฉ์๋์ด๋ค
- ๋ฐ๋ผ์ ๋ถ๋ชจ ํด๋์ค์์ ์ ์ํ final ๋ฉ์๋๋ฅผ ์์ ํด๋์ค๋ ์์ ์์ด ๊ทธ๋๋ก ์ฌ์ฉํด์ผ ํ๋ค
- ํน์ ๋ฉ์๋๋ง ์ค๋ฒ๋ผ์ด๋ฉํ์ง ์๋๋ก ํ๋ ค๋ฉด final ๋ฉ์๋๋ก ์ ์ธํ๋ค
class Chess {
enum ChessPlayer {
WHITE, BLACK
}
final ChessPlayer getFirstPlayer() {
return ChessPlayer.WHITE;
}
}
class WorldChess extends Chess {
// ChessPlayer getFirstPlayer() {}
}
public class FinalMethodDemo {
public static void main(String[] args) {
WorldChess w = new WorldChess();
w.getFirstPlayer();
}
}
=> ์ฒด์ค ๊ฒ์์ ํฐ์ ์ ์๊ฐ ๋จผ์ ์์ํ๋ ๊ฒ์ด ๊ด๋ก์ด๋ฏ๋ก ์์ ์์๋ฅผ ๋ฐ๊พธ์ง ์์์ผ ํ๋ฏ๋ก ์ฒด์ค์ ์์ ์ ์๋ฅผ ์ ํ๋ ๋ฉ์๋๋ฅผ final๋ก ์ง์ ใ ํด์ ๊ฒ์์ ์์๋ฅผ ๊ณ ์ ํ ์์ ์ด๋ค