타입과 멤버의 공개 여부는 별도로 판단한다
클래스를 외부에 공개해도 필드·생성자·보조 메서드는 각자의 협력 범위에 맞게 별도로 제한합니다.
| 대상 | 권장 시작 | 넓히는 조건 |
|---|---|---|
| 최상위 모델 | package-private | 외부 패키지 API |
| 필드 | private | 직접 노출 거의 없음 |
| 생성자 | 필요 범위 | 외부 생성 허용 |
| 보조 메서드 | private | 패키지 협력 필요 |
핵심: 최상위 타입은 public 또는 package-private이고 중첩 타입은 네 접근 수준을 모두 사용할 수 있습니다.