1. 익명 클래스란?
이름이 없는 클래스로 일회성으로 사용될 클래스를 정의할 때 유용하며, 주로 인터페이스나 추상 클래스의 구현체를 즉석에서 정의할 때 사용된다. 별도의 클래스를 만들지 않고도 간단하게 원하는 동작을 구현할 수 있어, 이벤트 처리나 콜백 처리 등에 자주 활용된다.
1-1. 기본 형식
인터페이스의 경우
인터페이스타입 변수 = new 인터페이스타입() {
// 추상 메서드 구현
};
추상 클래스의 경우
추상클래스 변수 = new 추상클래스() {
// 추상 메서드 구현
};
※ Java 8이후, 함수형 인터페이스를 사용하는 경우라면 익명 클래스는 람다식으로 데체할 수 있다.
// 변환 예시
btn.setOnClickListener(() -> System.out.println("클릭됨"));
1-2. 한계 및 주의점
- 단 한번만 사용되며 재사용이 어렵다.
- 내부에서는 외부 메서드의 지역 변수에 접근할 수 있지만, 해당 변수는 반드시 final 또는 effective final이어야 한다.
- 여러 개의 메서드가 있는 인터페이스/추상 클래스는 구현 코드가 길어질 수 있어 가독성이 떨어질 수 있다.
'자바 고급(JAVA)' 카테고리의 다른 글
| JCF 주요 인터페이스 (0) | 2026.05.21 |
|---|---|
| JCF의 필요성과 구조 이해 (0) | 2026.05.20 |
| 내부 클래스(Inner Class) (0) | 2026.05.15 |
| SOLID 원칙 - DIP(Dependency Inversion Principle) (0) | 2026.05.15 |
| SOLID 원칙 - ISP(인터페이스 분리 원칙) (0) | 2026.05.15 |