1. 톱레벨 클래스
Example.java
class Utensil {
static final String NAME = "pan";
}
class Dessert {
static final String NAME = "cake";
}
소스 파일에 하나에 톱레벨 클래스가 여러 개 정의되어 있더라도 컴파일은 가능하다. 그러나 소스 파일의 톱레벨 클래스와 이름이 중복되는 클래스가 외부에 존재하는 경우, 소스 파일의 순서에 따라 컴파일 결과가 달라질 수 있다.
Test.java
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";
}
}
여러 톱레벨 클래스를 하나의 소스 파일에 담아야 한다면 정적 멤버 클래스를 고려하라.
그런 것이 아니라면 소스 파일 하나에는 반드시 톱레벨 클래스(인터페이스)를 하나만 담자.
'Prodo 독서 리뷰' 카테고리의 다른 글
[Effective Java] Item 24. 멤버 클래스는 되도록 static으로 만들라 (0) | 2021.04.12 |
---|---|
[Effective Java] Item 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 (0) | 2021.04.12 |
[Effective Java] Item 22. 인터페이스는 타입을 정의하는 용도로만 사용하라 (0) | 2021.04.12 |
[Effective Java] Item 21. 인터페이스는 구현하는 쪽을 생각해 설계하라 (0) | 2021.04.12 |
[Effective Java] Item 20. 추상 클래스보다는 인터페이스를 우선하라 (0) | 2021.04.12 |