🔷 중첩 클래스 (nested class)
❗ 중첩 클래스 : 클래스 내부에 선언한 클래스 => 상속관계(is-z) X ,멤버관계(has-a) 관계이다
- 두 클래스의 멤버들을 서로 쉽게 접근하게 하고, 외부에는 불필요한 관계 클래스를 감춘다
- 코드 복잡성을 줄인다 
- 멤버 클래스 : 클래스의 멤버로서 선언되는 중첩 클래스 => 컴파일하면 A(바깥) $ B(멤버).class 바이트 코드 파일 생성
- 인스턴스 멤버 클래스 : A 객체를 생성해야만 사용할 수 있는 B클래스
- 정적 멤버 클래스 : statuc 붙은 클래스 => A클래스로 바로 접근할 수 있는 B클래스
- 로컬 클래스 : 메소드 내부에서 선언되는 중첩 클래스 => 컴파일 하면 A(바깥) $1 B(로컬).class 바이트 코드 파일 생성
- method()가 실행할 때만 사용할 수 있는 B클래스
- method()가 실행할 때만 사용할 수 있는 B클래스
🔷 중첩 인터페이스 (nested interface)
❗ 중첩 인터페이스 : 클래스 내부에 선언된 인터페이스
- 해당 클래스와 긴밀한 관계를 갖는 구현 클래스를 만들기 위해 사용한다
- 인스턴스 멤버 클래스 : static 키워드 없이 중첩 선언된 클래스 =? 인스턴스 필드,메솓만 선언 가능 정적 필드,메소드는 선언할 수 없다
🔷 익명 클래스
❗ 익명 클래스 : 이름이 없는 일회용 클래스,정의와 생성을 동시에한다, 어떤 클래스를 상속하거나 인터페이스를 구현해야 한다