네, 익명 클래스(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
객체 a의 show() 메서드를 호출하면 익명 클래스에서 재정의한 내용이 실행되어 위와 같은 출력 결과를 확인할 수 있습니다.
정리
익명 클래스는 이름이 없기 때문에 재사용할 수 없지만, 짧고 일회적인 구현에 적합합니다. 다만 코드가 길어지거나 여러 곳에서 재사용해야 한다면 일반적인 명명된 클래스나 람다 표현식(Java 8 이상)을 사용하는 것이 더 좋은 선택일 수 있습니다.