728x90
중첩 인터페이스 선언
예제)
package sec04.exam01_nestedinterface;
public class Button
{
OnClickListener listener;
void setOnClickListener(OnClickListener listener) //setter
{
//외부에서 구현객체를 받아서 저장
this.listener = listener;
}
void touch()
{
//인터페이스의 추상메소드 호출
listener.onClick();
}
//중첩인터페이스
interface OnClickListener
{
void onClick(); //추상 메소드
}
}
package sec04.exam01_nestedinterface;
public class CallListener implements Button.OnClickListener
{
@Override
public void onClick()
{
System.out.println("전화를 겁니다.");
}
}
package sec04.exam01_nestedinterface;
public class MessageListener implements Button.OnClickListener
{
@Override
public void onClick()
{
System.out.println("메시지를 보냅니다.");
}
}
package sec04.exam01_nestedinterface;
public class ButtonExample
{
public static void main(String[] args)
{
Button btn = new Button();
//class를 만들고 객체를 생성해서 처리
btn.setOnClickListener(new CallListener()); //외부에서 구현객체를 가져와서 대입 , 어떤객체를 대입하느냐에 따라 해당 객체의 onClick메소드가 호출될것임
btn.touch();
btn.setOnClickListener(new MessageListener());
btn.touch();
//직접 익명구현객체를 대입
btn.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick() {
System.out.println("사진을 찍습니다.");
}
});
btn.touch();
}
}
728x90
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 예외와 예외 클래스 (0) | 2021.07.22 |
---|---|
[JAVA] 익명 객체 (0) | 2021.07.21 |
[JAVA] 중첩 클래스와 중첩 인터페이스 - 중첩클래스(2) (0) | 2021.07.20 |
[JAVA] 중첩 클래스와 중첩 인터페이스 - 중첩클래스(1) (0) | 2021.07.19 |
[JAVA] 디폴트 메소드와 인터페이스 확장 (0) | 2021.07.15 |