Heim >Java >javaLernprogramm >Können in einer einzelnen Java-Datei mehrere Klassen der obersten Ebene vorhanden sein?

Können in einer einzelnen Java-Datei mehrere Klassen der obersten Ebene vorhanden sein?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 13:27:11668Durchsuche

Can Multiple Top-Level Classes Exist in a Single Java File?

Mehrere Klassendeklarationen in einer einzigen Java-Datei

In Java ist es möglich, mehrere Klassen der obersten Ebene in einer Datei zu definieren, aber mit der Einschränkung, dass nur eine dieser Klassen öffentlich sein kann (gemäß JLS §7.6).

Gibt es dafür einen bestimmten Begriff? Technik?

Obwohl es für diese Praxis keinen formalen Namen analog zu „inneren“, „verschachtelten“ oder „anonymen“ Klassen gibt, kann sie als Multiple der obersten Ebene bezeichnet werden Klassendeklaration.

Sind sekundäre Klassen daran gehindert, in anderen Kompilierungen referenziert zu werden? Einheiten?

Das JLS gibt tatsächlich an, dass die Java Virtual Machine (JVM) eine Einschränkung erzwingen kann, dass diese sekundären Klassen nicht „durch Code in anderen Kompilierungseinheiten des Pakets referenziert werden“ können. Diese Einschränkung wird jedoch nicht konsistent in allen Java-Implementierungen durchgesetzt.

Erklärung des Java-Implementierungsverhaltens

Während einige Java-Implementierungen diese dateiübergreifende Referenzierung möglicherweise nicht aktiv verbieten, tun sie es doch Einschränkungen haben, die dies wirksam verhindern. Wenn beispielsweise eine öffentliche Klasse namens Foo auf eine andere Klasse der obersten Ebene namens Bar aus einer anderen Datei verweist, schlägt die Kompilierung von Foo möglicherweise mit einem ähnlichen Fehler fehl: "cannot find symbol: class Baz". Dieser Fehler tritt auf, weil der Compiler nicht weiß, in welcher Quelldatei er nach der referenzierten Klasse Bar suchen soll.

Um diese Probleme zu vermeiden, ist es ratsam, jede Quelldatei auf nur eine Klasse der obersten Ebene zu beschränken, es sei denn, es handelt sich um die sekundäre Klasse Klassen müssen aus irgendeinem Grund auf die öffentliche Klasse zugreifen.

Das obige ist der detaillierte Inhalt vonKönnen in einer einzelnen Java-Datei mehrere Klassen der obersten Ebene vorhanden sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn