익명 클래스(anonymous classes)란?
익명 클래스란 이름이 없는 일회용 내부 클래스를 말한다. 즉, 클래스 선언과 객체의 생성을 동시에 하는 방식으로 주로 단 한 번만 사용될 클래스를 간편하게 만들 때 사용된다. 익명 클래스는 주로 GUI 이벤트 처리나 작은 콜백 객체를 생성할 때 사용되며, 이러한 클래스들은 보통 매우 짧으며 다른 곳에서 재사용될 필요가 없다.
익명 클래스(anonymous classes)의 특징은?
익명 클래스는 이름이 없기 때문에 생성자를 가질 수 없다.
익명 클래스는 주로 한 번만 사용되고 다시는 참조되지 않는다.
익명 클래스는 선언과 동시에 인스턴스가 생성된다.
익명 클래스는 다른 클래스를 상속하거나 인터페이스를 구현할 수 있다.
익명 클래스 내부에서는 메서드를 오버라이드할 수 있다.
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("버튼이 클릭되었습니다!");
}
});
위 예시에서 new ActionListener() {...} 부분이 익명 클래스이다.
익명 클래스의 장점
작은 기능을 가진 클래스를 별도의 파일로 만들지 않고, 바로 필요한 곳에 선언하고 사용할수 있어 코드가 간결해진다.
특정 메서드의 동작을 쉽게 커스텀할 수 있다.
익명 클래스의 단점
너무 많이 사용하면 코드를 읽고 이해하는 것이 어려워질 수 있다.
다른 곳에서 다시 사용할 수 없으므로 코드 중복이 발생할 수 있다.
클래스가 복잡해지면 관리하기 어려워질 수 있다.
익명 클래스는 Java8 이후에 등장한 람다 표현식(lambda expressions)으로 대체되는 경우가 많다. 람다 표현식은 더 간결하고 읽기 쉬운 코드를 작성할 수 있게 해주어, 단순한 익명 클래스의 사용을 줄여준다. 예를 들어, ActionListener 예제는 람다 표현식을 사용하여 다음과 같이 작성될 수 있다.