타입과 멤버의 공개 여부는 별도로 판단한다

클래스를 외부에 공개해도 필드·생성자·보조 메서드는 각자의 협력 범위에 맞게 별도로 제한합니다.

대상권장 시작넓히는 조건
최상위 모델package-private외부 패키지 API
필드private직접 노출 거의 없음
생성자필요 범위외부 생성 허용
보조 메서드private패키지 협력 필요

핵심: 최상위 타입은 public 또는 package-private이고 중첩 타입은 네 접근 수준을 모두 사용할 수 있습니다.