이너 인터페이스

5BRack·2022년 7월 1일

자바란?

목록 보기
19/42

이너 인터페이스

이너 인터페이스 : 내부에서 생성되었기 때문에 클래스 내부의 모든 리소스에 접근

  • 이너 인터페이스를 내부 클래스에 정의하는 것은 해당 클래스에 의존적인 기능을 수행할 때다.
  • 내부 클래스에 존재하는 인터페이스 이다.

특징

  • 정적 이너 인터페이스만 존재할 수 있다.
  • 내부 클래스에 인터페이스 정의시, static 키워드를 생략해도 컴파일러가 자동으로 추가해 준다.
  • 인터페이스가 클래스 내부에 존재하므로, 객체 타입을 `외부 클래스명.이너인터페이스명'으로 정의해 주어야 한다.

이벤트 처리 기능 작성

  • 일반적인 이벤트 처리 기능을 이너 인터페이스를 이용해 작성

  • 자바가 제공하는 기본 Button 클래스를 익명 인터페이스 구현으로 버튼 기능 생성

package month7days1;

class Button {
    OnClickListener ocl;
    void setOnClickListener(OnClickListener ocl){
        this.ocl = ocl;
    }
    interface OnClickListener{
        public abstract void onClick();
    }
    void click(){
        ocl.onClick();
    }
}
public class BtnEvent {
    public static void main(String[] args) {
        Button btn1 = new Button();
        btn1.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick() {
                System.out.println("개발자1: 음악재생");
            }
        });
        btn1.click();
        
        Button btn2 = new Button();
        btn2.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick() {
                System.out.println("개발자2 : 네이버 접속");
            }
        });
        btn2.click();
    }
}

0개의 댓글