찾다
Javajava지도 시간하나의 파일에 있는 여러 최상위 Java 클래스가 외부 코드와 상호 작용할 수 있습니까?

Can Multiple Top-Level Java Classes in One File Interact with External Code?

Java의 다중 클래스 선언: 자세한 설명

Java에서는 여러 최상위 클래스가 단일 파일 내에 공존할 수 있습니다. 그 중 하나는 공개로 지정됩니다. 내부, 중첩 또는 익명 클래스와 유사한 특정 이름이 없는 이 기술은 두 가지 주요 질문을 제시합니다:

1. 이러한 보조 클래스는 해당 컴파일 단위 외부의 코드와 상호 작용하는 것이 제한되어 있습니까?

JLS(Java 언어 사양)에서는 보조 클래스가 다른 컴파일 단위의 코드에서 참조되는 것을 금지하는 제한을 허용하지만 시행하지는 않습니다. 동일한 패키지 내에서. 이는 package-private으로 처리할 수 없음을 의미합니다.

2. 다양한 Java 구현에서는 이 제한 사항을 다르게 처리합니까?

JLS와 달리 Java 컴파일러 javac는 외부 파일과 동일한 이름을 공유하지 않는 한 외부 파일에서 최상위 클래스를 참조하는 것을 효과적으로 방지하는 제한 사항을 적극적으로 적용합니다.

자세한 설명

이 제한 사항은 다음과 같은 경우에 나타납니다. 파일 A의 클래스가 파일 B의 클래스에 액세스하려고 시도합니다. 여기서 파일 B에는 파일 B와 동일한 이름을 가진 다른 클래스도 포함되어 있습니다. 그러나 파일 A의 클래스가 동일한 이름을 가진 파일 B의 다른 클래스에도 액세스하는 경우 컴파일 오류가 사라집니다.

설명:

FileA.java:

public class FileA {

    private FileB fileB;

}

FileB.java:

public class FileB {

    private class FileBClass {

    }

}

컴파일 중 FileA.java 단독으로는 오류:

FileA.java:2: cannot find symbol
symbol  : class FileBClass
location: class FileA

이 문제를 해결하려면 FileA.javaFileB.java를 참조하거나 FileB.java를 참조해야 합니다. 컴파일된

결론

명시적으로 금지되지는 않지만 javac의 강제 제한은 상주하는 파일과 동일한 이름을 공유하지 않는 한 외부 파일의 최상위 클래스를 참조하는 것을 권장하지 않습니다. 따라서 대부분의 경우 이 방법은 실용적이지 않습니다.

위 내용은 하나의 파일에 있는 여러 최상위 Java 클래스가 외부 코드와 상호 작용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구