2010-02-25 3 views

Antwort

19

Eine Klasse, die nicht in einem benannten Paket ist in einem unnamed package. Daher ist der vollständige Klassenname Main.

Solche Klassen können nicht used aus einem benannten Paket sein, außer durch Reflektion.

Die JLS sagt, dass:

Unbenannt Pakete, die von der Java SE Plattform für Komfort hauptsächlich vorgesehen sind, wenn kleine oder temporäre Anwendungen zu entwickeln oder wenn nur die Entwicklung beginnt.

5

Java hat keine Namespaces, es hat Pakete. Und ja, Klassen ohne Paketdeklarationen sind implizit Teil eines "unnamed package", oft auch "Standardpaket" genannt. Da es jedoch nicht möglich ist, Klassen aus einem unbenannten Paket zu importieren, und da die Sprachenspezifikation explizit zulässt, dass Implementierungen unterschiedliche Regeln haben, ob und wie Klassen in unbenannten Paketen füreinander sichtbar sind, ist es im Allgemeinen eine gute Idee, alle Klassen in named zu setzen Pakete außer experimentellem Code.

4

Nach dem JLS es heißt:

7.4.2 Unbenannt Pakete

Eine Übersetzungseinheit, die keine Paketdeklaration hat Teil eines ungenannten Paket.

Verwandte Themen