개발 공부/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
을 사용해 해당 클래스로의 접근 범위를 최소화할 수 있다.
반응형