이 분 글을 한 번 참고하여 작성했습니다 🙂

하나의 java 파일엔 하나의 class 파일


우린 자바 파일을 작성할 때 하나의 클래스 생성을 원칙으로 한다.

이유가 뭘까?

  1. 패키지 트리구조로 파악되지 않는 클래스가 생긴다
  2. 수동 컴파일 시 컴파일하는 자바 파일의 순서에 따라 상이한 동작을 초래할 수 있다

예를 보자

public static void main(String[] args) throws Exception {
    System.out.println(A.NAME + B.NAME);
}
public class AlphaClass {
}

class A {
    static final String NAME = "난 A야";
}

class B {
    static final String NAME = "난 B야";
}

1번 이유처럼 자바 파일을 열기 전까지 A, B의 존재를 알아채기 쉽지 않다.

예를 추가해보자

public class MistakeAlphaClass {
}

class A {
    static final String NAME = "난 실수로 만들어진 클래스 A야";
}

class B {
    static final String NAME = "난 실수로 만들어진 클래스 B야";
}

요즘에는 IDE에서 Auto compile을 지원하기 때문에 숨어있는 클래스를 파악해 클래스의 중복 정의가 있다고 컴파일 오류로 알려줄 것이다.