Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바에서 이름 없이 클래스를 생성할 수 있을까? 익명 클래스(Anonymous Class) 완벽 정리

네, 익명 클래스(Anonymous Class)를 사용하면 자바에서 이름 없이 클래스를 생성할 수 있습니다.

익명 클래스는 이름이 없는 내부 클래스(inner class)입니다. 일반적인 클래스와 달리 별도의 클래스 선언 과정을 거치지 않고, 클래스를 정의하는 그 순간 인스턴스가 함께 생성된다는 점이 큰 특징입니다.

익명 클래스란?

익명 클래스는 한 번만 사용할 간단한 구현이 필요할 때 유용합니다. 예를 들어 이벤트 리스너, 콜백 처리, 특정 메서드를 일회성으로 오버라이드할 때 별도의 클래스 파일을 만들 필요 없이 코드를 즉석에서 작성할 수 있어 코드가 더 간결해집니다.

예제 코드

public class Anonymous {
    public void show() {}

    public static void main(String args[]) {
        Anonymous a = new Anonymous() {
            public void show() {
                System.out.println("Anonymous Class");
            }
        };
        a.show();
    }
}

위 예제에서 new Anonymous() { ... } 부분이 바로 익명 클래스입니다. 기존 클래스 Anonymous를 상속하면서 동시에 show() 메서드를 재정의(오버라이드)하고, 그 결과로 생성된 객체가 변수 a에 할당됩니다.

실행 결과

Anonymous Class

객체 ashow() 메서드를 호출하면 익명 클래스에서 재정의한 내용이 실행되어 위와 같은 출력 결과를 확인할 수 있습니다.

정리

익명 클래스는 이름이 없기 때문에 재사용할 수 없지만, 짧고 일회적인 구현에 적합합니다. 다만 코드가 길어지거나 여러 곳에서 재사용해야 한다면 일반적인 명명된 클래스나 람다 표현식(Java 8 이상)을 사용하는 것이 더 좋은 선택일 수 있습니다.