T.I.L #25 익명 클래스(anonymous classes)

개발자지망생·2023년 11월 6일
0

익명 클래스(anonymous classes)란?

익명 클래스란 이름이 없는 일회용 내부 클래스를 말한다. 즉, 클래스 선언과 객체의 생성을 동시에 하는 방식으로 주로 단 한 번만 사용될 클래스를 간편하게 만들 때 사용된다. 익명 클래스는 주로 GUI 이벤트 처리나 작은 콜백 객체를 생성할 때 사용되며, 이러한 클래스들은 보통 매우 짧으며 다른 곳에서 재사용될 필요가 없다.

익명 클래스(anonymous classes)의 특징은?

1. 이름이 없음

익명 클래스는 이름이 없기 때문에 생성자를 가질 수 없다.

2. 한 번만 사용

익명 클래스는 주로 한 번만 사용되고 다시는 참조되지 않는다.

3. 즉시 인스턴스화

익명 클래스는 선언과 동시에 인스턴스가 생성된다.

4. 상속 또는 구현

익명 클래스는 다른 클래스를 상속하거나 인터페이스를 구현할 수 있다.

5. 오버라이딩

익명 클래스 내부에서는 메서드를 오버라이드할 수 있다.

button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("버튼이 클릭되었습니다!");
    }
});

위 예시에서 new ActionListener() {...} 부분이 익명 클래스이다.

익명 클래스의 장점

1. 간결성

작은 기능을 가진 클래스를 별도의 파일로 만들지 않고, 바로 필요한 곳에 선언하고 사용할수 있어 코드가 간결해진다.

2. 편리함

특정 메서드의 동작을 쉽게 커스텀할 수 있다.

익명 클래스의 단점

1. 가독성

너무 많이 사용하면 코드를 읽고 이해하는 것이 어려워질 수 있다.

2. 재사용 불가

다른 곳에서 다시 사용할 수 없으므로 코드 중복이 발생할 수 있다.

3. 복잡성

클래스가 복잡해지면 관리하기 어려워질 수 있다.

익명 클래스는 Java8 이후에 등장한 람다 표현식(lambda expressions)으로 대체되는 경우가 많다. 람다 표현식은 더 간결하고 읽기 쉬운 코드를 작성할 수 있게 해주어, 단순한 익명 클래스의 사용을 줄여준다. 예를 들어, ActionListener 예제는 람다 표현식을 사용하여 다음과 같이 작성될 수 있다.

참고한 것 : 자바의 정석 , 구글 서칭

0개의 댓글