단일 Java 파일에 여러 클래스 선언
Java에서는 하나의 파일에 여러 개의 최상위 클래스를 정의하는 것이 가능하지만 이 클래스 중 하나만 공개할 수 있다는 제한이 있습니다(JLS에 따라). §7.6).
이 기술에 대한 특정 용어가 있습니까?
"내부", "중첩"과 유사한 이 관행에 대한 공식 명칭은 없지만, " 또는 "익명" 클래스인 경우 최상위 다중 클래스라고 할 수 있습니다. 선언.
보조 클래스는 다른 컴파일 단위에서 참조되는 것이 제한됩니까?
JLS는 실제로 JVM(Java Virtual Machine)이 이러한 보조 클래스는 "패키지의 다른 컴파일 단위에 있는 코드에서 참조"될 수 없다는 제한 사항이 있습니다. 그러나 이 제한은 Java 구현 전반에 걸쳐 일관되게 적용되지 않습니다.
Java 구현 동작 설명
일부 Java 구현에서는 이러한 파일 간 참조를 적극적으로 금지하지 않을 수 있지만 이를 효과적으로 방해하는 제한 사항이 있습니다. 예를 들어, Foo라는 공개 클래스가 다른 파일에서 Bar라는 또 다른 최상위 클래스를 참조하는 경우 Foo 컴파일은 "cannot find Symbol: class Baz" 오류와 함께 실패할 수 있습니다. 이 오류는 컴파일러가 참조된 클래스 Bar를 검색할 소스 파일을 모르기 때문에 발생합니다.
이러한 문제를 방지하려면 보조 클래스가 아닌 한 각 소스 파일을 하나의 최상위 클래스로 제한하는 것이 좋습니다. 클래스는 어떤 이유로 공개 클래스에 액세스해야 합니다.
위 내용은 단일 Java 파일에 여러 최상위 클래스가 존재할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!