개발 공부/Java

이펙티브 자바 아이템 25 - 톱 레벨 클래스는 한 파일에 하나만 담으라 - 핵심 정리

개발인생 2022. 12. 2. 13:49
반응형

아이템 25 - 톱 레벨 클래스는 한 파일에 하나만 담으라 - 핵심 정리

이 글은 백기선 님의 이펙티브 자바 강의와 이펙티브 자바 3 / E 편을 참고하여 작성하였습니다.

톱 레벨 클래스는 파일에 정의되어 있는 가장 바깥 클래스를 의미한다.

// 코드 25-1 두 클래스가 한 파일(Utensil.java)에 정의되었다. - 따라 하지 말 것! (150쪽)
class Utensil {
    static final String NAME = "pan";
}

class Dessert {
    static final String NAME = "cake";
}

이렇게 같은 파일에 클래스가 2개가 있어도 컴파일 할 때는 문제가 없다.

그러나 이렇게하면 안된다.

한 파일에는 톱 레벨 클래스 하나만 유지해야한다.

한 파일에 톱 레벨 클래스가 여러개 있게되면 컴파일을 어떻게 하느냐에 따라 결과가 달라질 수 있다.

어떠한 클래스가 다른 클래스에 종속적이라면

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";
    }
}

이렇게 정적 맴버 클래스 의 형태로 작성하는 방법이 있다.

이렇게 작성을 하면 가독성이 좋아진다.

또한 private 을 사용해 해당 클래스로의 접근 범위를 최소화할 수 있다.

반응형