앞서 살펴본 익명 객체를 활용한 인터페이스 구현 객체 사용법에 대해서 다시 한번 상기해 보겠습니다. 이번 아티클에서는 예제 코드를 통해서 익명 구현 클래스 인스턴스 생성과 사용 방식을 연습해 보겠습니다.
public interface RemoteControl {
public void turnOn();
public void turnOff();
}
public class Anonymous {
// 필드 값으로 인터페이스 구현 클래스 익명 인스턴스 구현
RemoteControl field = new RemoteControl() {
@Override
public void turnOn() {
System.out.println("TV전원 ON");
}
@Override
public void turnOff() {
System.out.println("TV전원 OFF");
}
};
void method1() {
// 로컬 변수로 구현
RemoteControl localVar = new RemoteControl() {
@Override
public void turnOn() {
System.out.println("Audio전원 ON");
}
@Override
public void turnOff() {
System.out.println("Audio전원 OFF");
}
};
localVar.turnOn();
}
void method2(RemoteControl rc) {
rc.turnOn();
}
}
public class ExampleMain {
public static void main(String[] args) {
Anonymous anony = new Anonymous();
anony.field.turnOn();
anony.method1();
anony.method2(new RemoteControl() {
@Override
public void turnOn() {
System.out.println("스마트TV 전원ON");
}
@Override
public void turnOff() {
System.out.println("스마트TV 전원OFF");
}
});
}
}
/* 출력
TV전원 ON
Audio전원 ON
스마트TV 전원ON
*/
Anonymous 클래스에서 필드로 익명 인스턴스를 구현한 경우, 그리고 메서드 내부의 로컬 변수로 익명 인스턴스를 생성한 경우, 파라미터 인자로 익명 인스턴스를 생성한 경우를 각각 구현해 보았습니다.
'Programming > JAVA' 카테고리의 다른 글
중첩 클래스&인터페이스(5) - 익명 객체 7 (0) | 2023.04.23 |
---|---|
중첩 클래스&인터페이스(5) - 익명 객체 6 (0) | 2023.04.23 |
중첩 클래스&인터페이스(5) - 익명 객체 4 (0) | 2023.04.18 |
중첩 클래스&인터페이스(5) - 익명 객체 3 (0) | 2023.04.17 |
중첩 클래스&인터페이스(5) - 익명 객체 2 (0) | 2023.04.14 |