[JAVA] 익명 클래스 Anonymous Class

현서황·2024년 9월 20일

JAVA

목록 보기
14/16

익명 클래스는 자바에서 이름이 없는 클래스를 의미한다. 단 한 번만 사용할 클래스를 정의할 때 유용하게 사용된다.
익명클래스는 그 클래스의 인스턴스를 즉시 생성하면서 클래스를 정의하는 방법이다.


특징

  1. 이름이 없음
    익명클래스는 이름이 없는 클래스이므로 한 번의 선언과 동시에 인스턴스를 생성한다.
  2. 단일 클래스나 인터페이스 구현
    익명 클래스는 하나의 인터페이스를 구현하거나 하나의 클래스를 확장할 수 있다.
  3. 로컬 클래스
    익명 클래스는 메서드나 블록 내에서 정의되며, 주로 메서드 내에서 인스턴스를 즉시 생성할 때 사용된다.

익명 클래스 사용 예

1. 인터페이스 구현

익명 클래스는 인터페이스를 구현할 때 자주 사용된다. 예를 들어, Runnable인터페이스를 구현하는 익명 클래스는 아래와 같이 작성된다.

public class Main {
    public static void main(String[] args) {
        // Runnable 인터페이스를 구현하는 익명 클래스
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("익명 클래스에서 실행 중!");
            }
        };

        // Thread로 실행
        new Thread(runnable).start();
    }
}

위 코드에서 Runnable인터페이스를 구현하는 익명 클래스가 정의되었고, Thread객체를 통해 실행된다. 인터페이스를 구현하는 이 클래스는 이름이 없으며, 해당 메서드 내에서 즉시 생성되어 사용된다.

2. 클래스 확장

익명 클래스는 클래스를 확장할 수도 있다. 예를 들어, 특정 클래스의 메서드를 오버라이드하고 싶을 때 익명 클래스를 사용할 수 있다.

class Animal {
    public void sound() {
        System.out.println("동물이 소리를 냅니다.");
    }
}

public class Main {
    public static void main(String[] args) {
        // Animal 클래스를 확장하는 익명 클래스
        Animal dog = new Animal() {
            @Override
            public void sound() {
                System.out.println("개가 짖습니다.");
            }
        };

        dog.sound();  // 출력: 개가 짖습니다.
    }
}

위 코드에서 Animal 클래스를 상속받는 익명 클래스를 생성하여 sound() 메서드를 오버라이드하고 있다. 이렇게 익명 클래스를 사용하면 한 번만 사용되는 클래스를 따로 정의하지 않고 간단하게 작성할 수 있다.

profile
노는 게 제일 좋은 뽀로로

0개의 댓글