์ธํฐํ์ด์ค(Interface)
1. ์ธํฐํ์ด์ค๊ฐ ์๊ธด์ด์
- ๊ธฐ๋ณธ ํด๋์ค๋ ๋ค์ค ์์์ ์ง์ํ์ง ์์ ๋ฌธ์ ๋ฐ์.
2. ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค๋ ์์, ์ถ์๋ฉ์๋ ๊ฐ์ง๊ณ ์์.
- ์ธํฐํ์ด์ค ๋ฉ์๋ ์ถ์๋ฉ์๋ ํ์์ผ๋ก ์ ์ธํ๋ฉด abstract๋ถ์ด์ง ์๋๋ผ๋ ์๋์ผ๋ก ์ปดํ์ผ ๊ณผ์ ์์ ๋ถ๊ฒ ๋จ.
- ํด๋์ค์์ ์ธํฐํ์ด์ค ๊ตฌํํ ๋ ํด๋์ค ์ด๋ฆ ๋ค์ implementsํค์๋ ์ฌ์ฉ.
- ์ถ๊ฐ์ ์ผ๋ก static, default๋ฉ์๋ ์ ์ธ ๋ํ ๊ฐ๋ฅํจ.
โถ ์ธํฐํ์ด์ค ๊ธฐ๋ณธ๋ฌธ๋ฒ
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ธฐ์ํด impletmentsํ ํ ์ธํฐํ์ด์ค ๋ด์์๋ ๋ฉ์๋ Overridigํ์ง ์์ผ๋ฉด ์ค๋ฅ๋ฐ์.
3. ์ธํฐํ์ด์ค ๊ธฐ๋ฅ1 - ๋ค์ค์์์ด ๊ฐ๋ฅ
- ์ธํฐํ์ด์ค๋ ๋ค์ค์์ ํํ ๊ฐ๋ฅ.
- ์ฌ๋ฌ ์ธํฐํ์ด์ค ๋์๊ตฌํ ๊ฐ๋ฅ.
- ๋จ, ์ธํฐํ์ด์ค์ ์๋ ๋ชจ๋ ์ถ์ ๋ฉ์๋๋ ์ธํฐํ์ด์ค ๊ตฌํํ๋ ํด๋์ค ๋ด์ ์ ๋ถ ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด์ผํจ.
- Inteface๊ฐ์๋ ์์์ด ๊ฐ๋ฅํ๋ค. Interface๊ฐ ์์์ extends์ฌ์ฉ.
โถ ๋ค์ค์์ํ๋ ์ธํฐํ์ด์ค ์์ 1
โฒ ๋ค์ค์์์ ์ โฒ
4. ์ธํฐํ์ด์ค ๊ธฐ๋ฅ2 - ๋ถ๋ชจํ์ ์ด ๋ ์ ์๊ณ , ๋คํ์ฑ ๊ตฌํํ๋ ์๋ฆฌ
- ์๋ฐ์ ์ธํฐํ์ด์ค๋ ๊ฐ์ฒด์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ ์ํ ํ์ (๋ฉ์๋ ๋ช ์ธ์)์ด๋ค.
- ๋ฐ๋ผ์ ๊ฐ์ฒด์ ๊ตํ์ฑ ๋์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋คํ์ฑ ๊ตฌํํ๋ ๋งค์ฐ ์ค์ํ ์ญํ ํจ.
โถ ๋ถ๋ชจํ์ ์ด๊ณ , ๋คํ์ฑ์ ๊ตฌํํ๋ Interface์์
์ถ์ํด๋์ค์ธ ๋ถ๋ชจํด๋์ค Animal, Fish์ Interface IPet์ ์์๋ฐ๋
๋ชจ๋ ํด๋์ค๋ค์ ๋ถ๋ชจํด๋์ค์ ์ธํฐํ์ด์ค์์๋ ๋ฉ์๋๋ค์ ์ฌ์ ์(Overriding)ํด์ผํจ.
public class MainClass{
public static void main(String[] args){
//์์ฑ์ Animal ๋ถ๋ชจํ์
์ ์ ์ฅ๋จ. <- Animal์ ๊ธฐ๋ฅ๋ง ์คํ๋จ.
Animal dog = new Dog();
Animal cat = new Cat();
Animal tiger = new Tiger();
Animal[] ani = {dog, cat, tiger};
for(Animal a : ani){
a.eat();
}
System.out.println("============================")
//์์ฑ์ ์ธํฐํ์ด์ค IPetํ์
์ ์ ์ฅ๋จ <- IPet์ ๊ธฐ๋ฅ๋ง ์คํ๋จ.
IPet dog2 = new Dog();
IPet cat2 = new Cat();
IPet fish2 = new GoldFish();
IPet[] pets = {dag2, cat2, fish2};
for(IPet p : pets){
p.play();
}
}
}
5. ์ธํฐํ์ด์ค ๊ธฐ๋ฅ3 - ํด๋์ค ์ฌ์ฉ๋ฐฉ๋ฒ ์ ์ํ ๊ท๊ฒฉํ
- ์ธํฐํ์ด์ค๋ ์ฌ์ฉ๋ฐฉ๋ฒ์ด ๋์ผํ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ธฐ์ ์ด๋ค.
โถ ํ๋ก๊ทธ๋จ์์ ์ค์ ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ ์์(๋ง์ดํฌ๋ก์ํํธ์์ ์ ์ํ sw์ฌ์ฉ๋ฒ)
์์์ LG์ Samsungํด๋์ค๋ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๋ฌผ๋ ค์์.
ํ์ง๋ง ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ฌ๋ฆฌ ์ ์ํ์ฌ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ ๋์ถํ๊ฒ ํจ.
6. ์ธํฐํ์ด์ค ์ ๋ฆฌ
- ์ธํฐํ์ด์ค๋ ์์์ ์ถ์๋ฉ์๋๋ง์ ๊ตฌ์ฑ๋ฉค๋ฒ๋ก ๊ฐ์ง!
1. ์ธํฐํ์ด์ค๋๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ค์์ ์ง์ํจ.
2. ์๋ฐ์ ์ธํฐํ์ด์ค๋ ๊ฐ์ฒด์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์ ์ํ ํ์ ์ด๋ค. ์ด๋ ๋คํ์ฑ์ ๊ตฌํํ๋ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํจ.
-->์ธํฐํ์ด์ค๋ ๋ฐ์ดํฐ ํ์ (๋ถ๋ชจํ์ )์ด ๋ ์ ์๋ค.
3. ์ฌ์ฉ๋ฐฉ๋ฒ์ด ๋์ผํ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ธฐ์ .
- ์ธํฐํ์ด์ค ๊ตฌํ ํค์๋ : Implements
- ์ธํฐํ์ด์ค๋ extends ํค์๋ ์ฌ์ฉํด ์ธํฐํ์ด์ค๊ฐ ์์ ๊ตฌํ๊ฐ๋ฅ.
'FOR SW ENGINEER๐ฉโ๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA_ Final(๋ณ๊ฒฝ ๊ธ์ง์ ๊ท์ ํค์๋) (0) | 2021.10.01 |
---|---|
JAVA_์์ธํด๋์ค์ ์์ธ์ฒ๋ฆฌ๋ฐฉ๋ฒ(try~catch, throws) (0) | 2021.09.30 |
JAVA_์ถ์ํ(Abstract) (0) | 2021.09.13 |
JAVA_์ ์ ์ ํ์ (Static) (0) | 2021.09.12 |
JAVA _๋คํ์ฑ(Polymorphism) (0) | 2021.09.09 |