익명 클래스 (Anonymous Class)
📌 익명 클래스란?
- 이름이 없는 클래스.
- 한 번만 사용될 클래스를 정의할 때 사용.
- 새로운 클래스를 정의하지 않고, 기존 클래스를 상속받거나 인터페이스를 구현하면서 메서드를 재정의 할 수 있다.
- 객체 생성과 동시에 클래스 선언 및 구현이 이루어짐.
📌 특징
- 클래스 선언 + 객체 생성을 동시에 함 → new 부모클래스/인터페이스() { ... }
- 한 번만 사용 가능 (재사용 불가).
- 상속받은 클래스나 인터페이스의 메서드를 재정의(Override) 해야 함.
- 코드를 간결하게 작성할 수 있음.
class Test {
int x = 10;
void display() {
System.out.println("Test x:" + x);
}
}
class Test2 extends Test {
void display() {
System.out.println("Test x:" + x * x);
}
}
public class Ex14_익명클래스 {
public static void main(String[] args) {
Test t1 = new Test();
t1.display(); // Test x:10
Test2 t2 = new Test2();
t2.display(); // Test x:100
// ✅ 익명클래스: 새로운 클래스 생성 없이 메서드만 재정의
new Test() {
@Override
void display() {
System.out.println("Test x:" + x * x * x);
}
}.display(); // Test x:1000
}
}
interface RemoteControl2{
void turnOn();
void turnOff();
}
public class Ex16_익명클래스 {
public static void main(String[] args) {
RemoteControl2 r = new RemoteControl2() {
public void turnOn() {
System.out.println("Tv 킴");
}
public void turnOff() {
System.out.println("Tv 끔");
}
};
r.turnOn();
r.turnOff();
}
}
📌 정리
- 일반 상속: 클래스를 새로 정의하고 메서드를 오버라이딩해서 사용.
- 익명 클래스: 새 클래스를 정의하지 않고, 필요한 메서드만 즉석에서 오버라이딩해서 사용.
- 주로 이벤트 처리, 콜백 함수 구현, 임시 객체 생성에 활용됨.
👉 한 줄 요약:
익명 클래스 = 이름 없는 1회용 클래스, "즉석에서 메서드를 재정의할 때 사용"
'기초 및 언어 > ▶ Java&JSP' 카테고리의 다른 글
| 26. 패키지 - Object (0) | 2025.08.22 |
|---|---|
| 25. 예외 처리(try ~ catch ~ finally), throw, Exception (0) | 2025.08.20 |
| 23. 추상클래스, 인터페이스 (5) | 2025.08.20 |
| 22. import (0) | 2025.08.20 |
| 21. 다형성, 업캐스팅, 다운캐스팅 (2) | 2025.08.20 |