🔍 내가 배운 내용 요약


  1. 이너 클래스는 클래스 내부에서 정의된 클래스
  2. 이너 인터페이스는 클래스(또는 인터페이스) 내부에 정의된 인터페이스
  3. 구조적 응집도 높이고, 외부 클래스와 밀접한 관계를 표현함

📚 이너 클래스(Inner Class)


✅ 정의

클래스 내부에 정의된 또 다른 클래스. 외부 클래스와 밀접한 연관이 있을 때 사용


✅ 종류별 정리

종류 설명 특징
인스턴스 이너 클래스 외부 클래스의 인스턴스 멤버처럼 동작 외부 객체 있어야 생성 가능
정적(static) 이너 클래스 정적 멤버처럼 동작 외부 객체 없이 사용 가능
지역 이너 클래스 메서드 내에서 선언 지역 변수처럼 제한적 범위
익명 이너 클래스 이름 없이 정의된 클래스 (주로 인터페이스 구현에 사용) 1회성 구현, 람다처럼 사용 가능

✅ 예시

Java

class Outer {
    int outerNum = 10;

    // 인스턴스 이너 클래스
    class Inner {
        void print() {
            System.out.println("outerNum = " + outerNum);
        }
    }

    // 정적 이너 클래스
    static class StaticInner {
        void show() {
            System.out.println("Static inner class");
        }
    }

    void useInner() {
        // 지역 이너 클래스
        class LocalInner {
            void local() {
                System.out.println("지역 이너 클래스");
            }
        }
        LocalInner li = new LocalInner();
        li.local();
    }
}

📚 이너 인터페이스(Inner Interface)