백엔드/Java

Java 익명 클래스(Anonymous Class)

짱뚱짱 2024. 10. 20. 09:10

🔷 익명 클래스(Anonymous Class)

- 내부 클래스의 일종.

- 클래스를 정의하지 않고 즉석에서 객체를 생성
- 인터페이스를 이용하여 객체를 생성할 때, 클래스를 인터페이스 구현하여 객체를 생성

 

🔷 익명클래스를 사용하는 이유
- 인터페이스의 기능이 적고, 그 객체가 1개만 필요할 경우  
- 메서드로 매개변수의 값이 들어와야 할 때 익명클래스를 사용함.

package day07;

interface Power {
    void turnOn();
    void turnOff();
}

class TV implements Power {

    @Override
    public void turnOn() {
        System.out.println("전원이 켜집니다.");
    }

    @Override
    public void turnOff() {
        System.out.println("전원이 꺼집니다.");
    }
}

public class Anonymous01 {

    public static void main(String[] args) {
        Power t = new TV();  // Power를 구현한 클래스이기 때문에 Up Casting 가능
        Anonymous01 a = new Anonymous01();

        // 익명 클래스를 사용하여 Power 인터페이스 구현
        a.product(new Power() {
            @Override
            public void turnOn() {
                System.out.println("익명클래스 / 전원이 켜집니다.");
            }

            @Override
            public void turnOff() {
                System.out.println("익명클래스 / 전원이 꺼집니다.");
            }
        });
    }

    public void product(Power p) {
        p.turnOn(); // 켜짐
        System.out.println("정상 작동중...");
        p.turnOff(); // 꺼짐
    }
}

 

 

결과

익명클래스 / 전원이 켜집니다.
정상 작동중...
익명클래스 / 전원이 꺼집니다.

 


단순함은 궁극적인 정교함이다.

'백엔드 > Java' 카테고리의 다른 글

Java List  (1) 2024.10.20
Java Collection 프레임워크  (1) 2024.10.20
Java 예외 처리 실습  (1) 2024.10.20
Java 예외 처리  (0) 2024.10.17
Java 날짜와 시간  (0) 2024.10.16