톱레벨 클래스라는 것은 파일에 정의되어있는 가장 바깥에 있는 클래스를 의미합니다. 가장 바깥에 있는 클래스가 여러개 있어도 컴파일하는데 문제는 없습니다. 하지만 한파일에는 톱레벨 클래스를 오직 하나만 선언하길 권장하고 있습니다. 그 이유는 한 파일에 톱 레벨 클래스가 여러개가 있다면 컴파일을 어떻게 하느냐에 따라서 결과가 달라질 수 있습니다. 어떤 클래스가 다른클래스에 종속적이라면 아이템24의 정적 멤버클래스를 사용하면 가독성도 좋고 private접근 지시자를 사용해서 클래스의 접근범위를 최소화 할 수 있습니다.
정적 멤버클래스로 선언
package me.whiteship.chapter04.item25;
// 코드 25-3 톱레벨 클래스들을 정적 멤버 클래스로 바꿔본 모습 (151-152쪽)
public class Test {
public static void main(String[] args) {
System.out.println(Utensil.NAME + Dessert.NAME);
}
private static class Utensil {
static final String NAME = "pan";
}
private static class Dessert {
static final String NAME = "cake";
}
}
'개발관련 서적 정리 > Effective Java' 카테고리의 다른 글
아이템 29. 이왕이면 제네릭 타입으로 만들라 (0) | 2023.02.05 |
---|---|
아이템 28. 배열보다는 리스트를 사용하라 (0) | 2023.02.05 |
아이템 24. 멤버 클래스는 되도록 static으로 만들라 (0) | 2023.02.05 |
아이템 23. 태그 달린 클래스 보다는 클래스 계층 구조를 활용하라 (0) | 2023.02.05 |
아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라 (0) | 2023.02.05 |