여러 클래스와 관계를 맺지 않을 때, 특정 클래스랑만 관계가 있을 때, 중첩 클래스를 이용하는 것이 좋다.
클래스 내부에 선언한다.
종류
클래스 멤버처럼 선언되는 멤버 클래스와 생성자나 메소드 안에 선언될 수 있는 로컬 클래스가 있다.
- 로컬 클래스는 메소드를 실행해야 사용 가능하다.
- 멤버 클래스는 인스턴스와 정적으로 나뉘는데, 인스턴스 멤버 클래스는 바깥 클래스 객체를 먼저 생성해야 사용할 수 있는 것이고, 정적 멤버 클래스는 중첩 클래스 객체만 생성하면 사용 가능하다.
- 일반적으로, 바깥 클래스의 외부에서 사용 잘 안하고 내부에서 바로 사용한다. 이때, 그냥 중첩 클래스의 객체를 바로 생성하고 사용하면 된다.
중첩 클래스와 비슷한 패턴으로 클래스 안에 인터페이스를 선언하는 것