한줄 요약 : 소스 파일 하나에 톱레벨 클래스 여러개 선언하는건 컴파일은 가능한데 아무런 득이 없고 위험할 수 있다.
- 소스 파일을 어떤 순서로 컴파일하냐에 따라 동작이 달라질 수 있다.
- 톱레벨 클래스를 서로 다른 클래스로 분리
- 굳이 여러 톱레벨 클래스를 담겠다면 정적 멤버 클래스(아이템 24) 사용
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";
}
}