자바 고급(JAVA)

익명 클래스(Anonymous Class)

beginner-development 2026. 5. 18. 18:25

1. 익명 클래스란?

이름이 없는 클래스로 일회성으로 사용될 클래스를 정의할 때 유용하며, 주로 인터페이스나 추상 클래스의 구현체를 즉석에서 정의할 때 사용된다. 별도의 클래스를 만들지 않고도 간단하게 원하는 동작을 구현할 수 있어, 이벤트 처리나 콜백 처리 등에 자주 활용된다.

1-1. 기본 형식

인터페이스의 경우

인터페이스타입 변수 = new 인터페이스타입() {
    // 추상 메서드 구현
};

추상 클래스의 경우

추상클래스 변수 = new 추상클래스() {
    // 추상 메서드 구현
};

Java 8이후, 함수형 인터페이스를 사용하는 경우라면 익명 클래스는 람다식으로 데체할 수 있다.

// 변환 예시
btn.setOnClickListener(() -> System.out.println("클릭됨"));

1-2. 한계 및 주의점

  1. 단 한번만 사용되며 재사용이 어렵다.
  2. 내부에서는 외부 메서드의 지역 변수에 접근할 수 있지만, 해당 변수는 반드시 final 또는 effective final이어야 한다.
  3. 여러 개의 메서드가 있는 인터페이스/추상 클래스는 구현 코드가 길어질 수 있어 가독성이 떨어질 수 있다.