강잇
강이의 개발블로그
강잇
전체 방문자
오늘
어제
  • 분류 전체보기 (102)
    • Langauge (32)
      • Java-basic (29)
      • Java (3)
    • SpringBoot (7)
    • Algorithm (5)
      • BAEKJOON (5)
    • WEB (7)
      • HTML & CSS (7)
    • DB (1)
      • MySQL (1)
    • OS (17)
      • Mac (2)
      • Linux (4)
      • Terminal Command (11)
    • Computer Science (7)
      • Hard ware (1)
      • Database (1)
      • Data structure (2)
      • Algorithm (2)
      • Network (1)
    • Git (5)
      • 개념 (1)
      • 활용 (1)
      • Trouble Shooting (2)
    • ETC. (13)
      • Install (6)
      • IntelliJ (1)
      • Eclipse (2)
      • Error (3)
      • Tip (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • til
  • 자바
  • 알고리즘 공부
  • 메서드
  • 메소드
  • 백준
  • CSS 박스 크기 설정
  • CSS 속성

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
강잇

강이의 개발블로그

Langauge/Java-basic

[Java] 이너 인터페이스(중첩 인터페이스)

2022. 8. 11. 22:12

이너 인터페이스(중첩 인터페이스)란

  • 이너 인터페이스란 클래스의 멤버로 선언된 인터페이스를 의미한다.
    • 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서
// 이너 인터페이스 정의
class OuterClass {
    // 이너 인터페이스 생성
    static interface InnerInterface {
        public 리턴타입 메서드명();
    }
}

이너 인터페이스의 특징

  • 사용자 인터페이스(UI)의 이벤트 처리에 많이 사용된다.
  • 정적 이너 인터페이스만 존재할 수 있다.
    • static 제어자를 생략하면 컴파일러가 자동으로 추가한다.
  • 컴파일시 '아우터 클래스$이너 인터페이스.class' 형태로 .class파일이 생성된다.

이너 인터페이스 타입의 객체 생성

  • 객체 생성 방법으로는 구현한 하위 클래스를 이용한 방법과 익명 이너 클래스를 활용하는 방법이 있다.
    • 인터페이스는 자체적으로 객체를 생성할 수 없다.

이너 인터페이스를 구현한 클래스를 이용하여 객체 생성

// 이너 인터페이스를 구현한 클래스 생성
class InnerImpl implements OuterClass.InnerInterface {
    @Override
    public 리턴 타입 메서드명() {
        ...
    }
}
// 이너 인터페이스 타입의 객체 생성
OuterClass.InnerInterface innerImpl = new InnerImpl();

익명 이너 클래스를 이용하여 객체 생성

// 익명 이너 클래스를 이용하여 객체 생성
OuterClass.InnerInterface innerInterface = new OuterClass.InnerInterface() {
    @Override
    public 리턴 타입 메서드명 {
        // 기능 구현
    }
}
저작자표시

'Langauge > Java-basic' 카테고리의 다른 글

[Java] 예외(Exception)  (0) 2022.08.14
[Java] 익명 이너 클래스(Anonymous Class)  (0) 2022.08.11
[Java] 인터페이스란?  (0) 2022.08.07
[Java] 추상 클래스와 추상 메소드 (abstract 제어자)  (0) 2022.08.05
[Java] 클래스의 정점, Object 클래스  (0) 2022.08.04
    'Langauge/Java-basic' 카테고리의 다른 글
    • [Java] 예외(Exception)
    • [Java] 익명 이너 클래스(Anonymous Class)
    • [Java] 인터페이스란?
    • [Java] 추상 클래스와 추상 메소드 (abstract 제어자)
    강잇
    강잇
    학습한 내용을 정리 및 기록하는 블로그

    티스토리툴바