Mehrere Klassen in einer Datei

7

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?

    
Zach Latta 30.10.2012, 04:41
quelle

7 Antworten

18

Eine Java-Datei kann aus mehreren Klassen bestehen mit der Einschränkung, dass nur eine davon öffentlich sein kann. Sobald Sie public keyword aus Ihren Klassen entfernen, können Sie sie zu einer einzigen kombinieren Java-Datei.

    
SiB 30.10.2012, 04:47
quelle
4

Bei Gefahr der Löffelfütterung

Bitte lesen Sie Ссылка

%Vor%     
Arun Manivannan 30.10.2012 04:46
quelle
2

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 { }

    
Arun Chandravanshi 30.10.2012 12:56
quelle
1

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.

    
shriguru nayak 30.10.2012 04:48
quelle
1

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:

  • Verschieben der anderen Klassen in ihre eigenen Dateien. Zum Beispiel: FirstClass.java, SecondClass.java, und ThirdClass.java .
  • 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:

    %Vor%

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).

  •   
    
Andy Thomas 28.06.2017 15:20
quelle
0

Entfernen Sie einfach public von allen anderen Klassendefinitionen und fügen Sie den Code in TheaterDemo.java file

ein %Vor%     
kosa 30.10.2012 04:45
quelle
0

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.

    
Yogendra Singh 30.10.2012 04:46
quelle

Tags und Links