โ 1. ์ต๋ช ํด๋์ค๋?
- "์ต๋ช " + "ํด๋์ค" ์ด๋ฆ์ด ์๋ ํด๋์ค๋ฅผ ์๋ฏธํ๋ค.
- ์ผํ์ฑ์ผ๋ก 1๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ํด๋์ค์ด๋ฉฐ, ์ต๋ช ํด๋์ค ์ ์์ ๋์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค.
โ 1. ์ต๋ช ํด๋์ค ์ฌ์ฉ ๋ฐฉ๋ฒ
// ๋ถ๋ชจ ํด๋์ค
class Animal {
public void sound() {
System.out.println("๋๋ฌผ์๋ฆฌ");
}
}
public class Main {
public static void main(String[] args) {
Animal dog = new Animal() {
@Override
public void sound() {
Systme.out.println("๊ฐ์์ง ์๋ฆฌ");
}
};
dog.bark();
}
}
- ์ต๋ช ํด๋์ค๋ก ๋ง๋ค๊ฒ ๋๋ฉด, ์ต๋ช ์ ์์ ํด๋์ค๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋๋ค. ์ฆ, ์ค๋ฒ๋ผ์ด๋ฉ์ ํตํด ์ฌ์ ์๋ฅผ ํ๊ธฐ ์ํด ์ฌ์ฉ์ํ๋ค.
- ๋ง์ฝ ์ฌ์ ์๋ฅผ ํ์ง ์๋ ๊ฒฝ์ฐ์๋ ๋ฉ์๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ ์์๊ณผ ๊ฐ์ ๊ฐ๋ ์ด๋ค.
- ๋จ, ์ต๋ช ํด๋์ค์ ์์ํด๋์ค ์ฆ, ํ์ฌ ์์ฑํ๋ ํด๋์ค์ ์๋ ๋ฉ์๋๋ ํ๋๋ฅผ ์๋ก ๋ง๋ค ๊ฒฝ์ฐ์๋ ์ฌ์ฉ์ ๊ฐ๋ฅํ์ง๋ง, ์ต๋ช ํด๋์ค ๋ด๋ถ์์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ธ๋ถ์์๋ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ์ฆ, ์ธ๋ถ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฑด ์๋ ํด๋์ค์ ์ ์๋ ํ๋๋ ๋ฉ์๋์ด๋ค.
โ 2. ์ต๋ช ํด๋์ค ์ฌ์ฉ ์ด์
- ์์ ๋ฟ๋ง ์๋๋ผ ์ธํฐํ์ด์ค, ์ถ์๋ ๊ฐ๋ฅํด์ ํด๋์ค ์ฌ์ฌ์ฉ ์์ด ๋ฑ ํ ๋ฒ๋ง ๊ตฌํํด์ ์ธ ๊ฑฐ๋ผ๋ฉด, ๋ณ๋์ ํด๋์ค ์ ์ผ์ด ๋ง๊ณ ์ต๋ช ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข์.
- ์ง์ญ ๋ณ์์ฒ๋ผ ์ต๋ช ํด๋์ค๋ก ์ ์ํ๊ณ ์คํ์ด ๋๋๋ฉด ์ญ์ ๋๋๋ก ํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ์ธก๋ฉด์์ ์ด์ ์ด ์์.
- ์์ํ ํด๋์ค์ ์ผ๋ถ ๋ฉ์๋๋ง ๊ฐ๋จํ ์ฌ์ ์ํ๊ณ ์ถ์ ๊ฒฝ์ฐ, ๊ตณ์ด ์ ํด๋์ค๋ฅผ ๋ง๋ค์ง ์๊ณ ๊ทธ ์๋ฆฌ์์ ์ฌ์ ์๋ฅผํจ.
- ์ธํฐํ์ด์ค ์ฆ์ ๊ตฌํ์ด ๊ฐ๋ฅํด์ ์ค๋ ๋ ๋ฑ์์ ๋ง์ด ์ฌ์ฉ์ด ๋จ.
'๐ ๏ธBackend > โJava' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค์(Lambda Expression) ์ฝ๊ฒ ๋ฐฐ์ฐ๊ธฐ (1) | 2025.05.23 |
---|---|
[Java] ์ ๋ค๋ฆญ(Generic) ๋ฌธ๋ฒ ์ ๋ฆฌ: ํด๋์ค, ๋ฉ์๋, ์ ํ๊น์ง (0) | 2025.05.23 |
[Java] ๋คํ์ฑ(polymorphism) (1) | 2025.05.22 |
[Java] ์ถ์ํ - ์ถ์ํด๋์ค, ์ถ์๋ฉ์๋, ์ธํฐํ์ด์ค (0) | 2025.05.20 |
[Java] Enum ์ฝ๊ฒ ์ดํดํ๊ธฐ (1) | 2025.05.05 |