공부/Java

[Java] 중첩 인터페이스

ByeongJun 2023. 4. 10. 01:27
반응형

중첩 인터페이스

클래스의 멤버로 선언된 인터페이스 

인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위함이다.

 

외부의 접근을 막지 않으려면 public, A 클래스 내부에서만 사용하려면 private를 붙인다.

접근 제한자를 붙이지 않으면 같은 패키지 안에서만 접근이 가능하다.

 

출처 : <이것이 자바다(개정판)>

위의 예제에서는 외부 접근이 가능하도록 public이면서

Button 객체 없이 사용 가능한 static 중첩 인터페이스로 ClickListener와 onClick 추상 메소드를 선언했다. 

 

 

Button 클래스에 ClickListener 타입의 필드와 setter를 추가해서 

외부 setter를 통해 ClickListener 구현 객체를 필드에 저장할 수 있도록 한다. 

 

10라인의 ClickListener 필드는 13라인에서 setter를 통해 제공된 ClickListener 구현 객체의 참조를 갖고 있다. 

 

 

19라인에서 onClick() 메소드를 호출하면 ClickListener 구현 객체의 onClick() 메소드가 실행된다.

반응형