- 클래스의 멤버로 선언된 인터페이스
- \해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위함
public class Button {
public static interface ClickListener{
void OnClick();
}
private ClickListener clickListener;
public void setClickListener(ClickListener clickListener) {
this.clickListener = clickListener;
}
public void click() {
this.clickListener.onClick();
}
}
(main)
Button btnOk = new Button();
class CancelListener implements Button.ClickListener {
@Override
public void onClick() {
(print)
}
}
btnOk.setClickListener(() -> (print))
btnNo.setClickListener(new CancelListener());
// 익명 객체
btnNo.setClickListener(new CancelListener() {
@Override
public void onClick(){}
});