Skip to content

Latest commit

 

History

History
30 lines (21 loc) · 845 Bytes

25_톱레벨클래스는_한파일에_하나만.md

File metadata and controls

30 lines (21 loc) · 845 Bytes

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

한줄 요약 : 소스 파일 하나에 톱레벨 클래스 여러개 선언하는건 컴파일은 가능한데 아무런 득이 없고 위험할 수 있다.

위험성

  • 소스 파일을 어떤 순서로 컴파일하냐에 따라 동작이 달라질 수 있다.

해결책 2가지

  1. 톱레벨 클래스를 서로 다른 클래스로 분리
  2. 굳이 여러 톱레벨 클래스를 담겠다면 정적 멤버 클래스(아이템 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";
    }
}