Ich habe Probleme, mehrere Klassen in eine einzige Datei zu setzen. Zum Beispiel, wenn meine Datei wie folgt aussieht:
%Vor%Ich bekomme einen Fehler beim Kompilieren. Ich bin mir nicht sicher, was das verursacht. Irgendwelche Ideen?
Ja Sie können alle Klassen in einer einzelnen .java-Datei schreiben. Sie müssen jedoch nur eine Klassen-public haben (wenn Dateiname und Klassenname gleich sind)
Beispiel:
Klasse A { }
Klasse B { }
Klasse C { }
Ich gehe davon aus, dass Sie sehr Anfänger sind! Kopieren Sie einfach alle diese Inhalte in eine einzige Datei TheaterDemo.java
. Und vergessen Sie nicht, alle public
-Schlüsselwörter am Anfang der Klassendeklaration zu entfernen.
Eine Java-Datei kann höchstens eine oberste öffentliche Klasse enthalten. Diese öffentliche Klasse der obersten Ebene kann eine beliebige Anzahl von öffentlichen geschachtelten Klassen enthalten.
Sie können Ihre Compilerfehler durch einen der folgenden Ansätze eliminieren:
Verschachteln der Klassen, deren Name nicht der Datei Basisname ist. Zum Beispiel:
%Vor% Entfernen des public
-Qualifikators von allen außer der einen Klasse, deren Name der Basisname der Datei ist. Dieser Ansatz ist nach der Einführung verschachtelter Klassen in Java v1.1 seltener geworden. Zum Beispiel könnten Sie in der Datei FirstClass.java Folgendes haben:
Aus der Java-Sprachspezifikation Abschnitt 7.6: Oberste Ebene Geben Sie Deklarationen ein :
Wenn und nur wenn Pakete in einem Dateisystem gespeichert werden (§7.2), kann das Hostsystem die Einschränkung erzwingen, dass es sich um einen Kompilierungsfehler handelt, wenn ein Typ in einer Datei unter einem Namen nicht gefunden wird der Typname plus eine Erweiterung (z. B. .java oder .jav), wenn eine der folgenden Bedingungen erfüllt ist:
Auf den Typ wird in anderen Kompilierungseinheiten des Pakets, in dem der Typ deklariert ist, durch Code verwiesen.
Der Typ wird als öffentlich deklariert (und ist daher möglicherweise über Code in anderen Paketen zugänglich).
Ich sehe, Sie haben diese Art von Implementierung schon gemacht. Bitte beziehen Sie sich auf
%Vor% in Ihrer TheaterWindow
-Klasse.
Dadurch erstellen Sie innere Klassen, d. h. CalcButtonListener
ist eine innere Klasse von TheaterWindow
class. Einige Konzepte können Sie auf andere Klassen erweitern.