소스를 작성하는 파일 내에 하나만 존재하는 클래스를 톱레벨 클래스라고 한다.
소스 파일 하난에 여러개의 톱레벨 클래스가 있다면 문제가 있다.
문제
Product.java
class Product {
static final StringNAME= "phone";
}
class Company {
static final StringNAME= "samsung";
}
Company.java
public class Company {
static final StringNAME= "samsung";
}
class Product {
static final StringNAME= "phone";
}
위의 소스코드는 컴파일 에러에서 중복된 클래스라 에러가 발생할 것이다.
컴파일러에게 어느 소스파일을 먼저 읽게 하냐 에 따라 정상 동작할 수 도 있고 또는 컴파일 에러가 발생할 수도 있다.
이러한 문제점을 해결하기위한 방법은 서로 다른 소스 파일로 분리 해야한다.
정적 멤버 클래스로 변경
public class Main {
public static void main(String[] args) {
System.out.println(Company.NAME+ Product.NAME);
}
static class Company {
static final StringNAME= "samsung";
}
static class Product {
static final StringNAME= "phone";
}
}
'Book > Effective Java' 카테고리의 다른 글
[Item 29] 이왕이면 제네릭 타입으로 만들라 (0) | 2022.08.18 |
---|---|
[Item 28] 배열보다는 리스트를 사용하라 (0) | 2022.08.18 |
[Item 27] 비검사 경고를 제거하라 (0) | 2022.08.06 |
[Item 26] 로 타입(Raw Type)은 사용하지 말라 (0) | 2022.08.05 |
[Item 24] 멤버 클래스는 되도록 static 으로 만들라 (0) | 2022.07.27 |
[Item 23] 태그 달린 클래스보다 클래스 계층구조를 활용하라 (0) | 2022.07.27 |
[Item 22] 인터페이스는 타입을 정의하는 용도로만 사용하라 (0) | 2022.07.26 |
[Item 21] 인터페이스는 구현하는 쪽을 생각해 설계해라 (0) | 2022.07.26 |