클래스가 여러 클래스와 관게를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 가지는 경우에는 중첩 클래스로 선언하는 것이 유지보수에 용이
중첩 클래스 : 클래스 내부에 선언한 클래스.
중첩 클래스를 사용하면 클래스의 멤버를 쉽게 사용할 수 있고, 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있음
클래스의 멤버로서 선언되는 중첩 클래스를 멤버 클래스
메소드 내부에서 선언되는 중첩 클래스를 로컬 클래스
중첩 클래스도 하나의 클래스이기 때문에 컴파일러하면 바이트코드 파일(.class)이 별도로 생성
멤버 클래스일 경우 → 바깥 클래스 $ 멤버 클래스 .class
로컬 클래스일 경우 → 바깥 클래스 $1 로컬 클래스 .class
인스턴스 멤버 클래스는 A 클래스의 멤버로 선언된 B 클래스를 말함.
class A{
class B{}
}
인스턴스 멤버 클래스의 접근 범위
public
default
private