본문 바로가기
개발관련 서적 정리/Effective Java

아이템 25. 톱 레벨 클래스는 한 파일에 하나만 담으라

by Backchus 2023. 2. 5.

톱레벨 클래스라는 것은 파일에 정의되어있는 가장 바깥에 있는 클래스를 의미합니다. 가장 바깥에 있는 클래스가 여러개 있어도 컴파일하는데 문제는 없습니다. 하지만 한파일에는 톱레벨 클래스를 오직 하나만 선언하길 권장하고 있습니다. 그 이유는 한 파일에 톱 레벨 클래스가 여러개가 있다면 컴파일을 어떻게 하느냐에 따라서 결과가 달라질 수 있습니다. 어떤 클래스가 다른클래스에 종속적이라면 아이템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";
    }
}