Innere Klasse in Java

8

Ich habe in Java über Inneres gelesen. Ich habe diesen Code gefunden

%Vor%

Nach dem Kompilieren gibt javap 'Animal$Brain' die Ausgabe als

%Vor%

erklärt, wie die innere Klasse den Verweis auf ihre umschließende Instanz im inneren Klassenkonstruktor erhält. Aber wenn ich die innere Klasse so privat definiere,

%Vor%

Nach dem Kompilieren liefert javap 'Animal$Brain' die Ausgabe als

%Vor%

Warum ist die Ausgabe anders? Warum wird der innere Klassenkonstruktor nicht angezeigt? Auch im letzteren Fall erhält die innere Klasse die Referenz der umschließenden Klasseninstanz.

    
Ashish Pani 23.12.2016, 15:13
quelle

2 Antworten

7

Gute Frage. Laut dies ,

Wenn keine Optionen verwendet werden, gibt javap die Paket-, geschützten und öffentlichen Felder und Methoden der Klassen aus, die an

übergeben wurden

Da Sie Brain als private innere Klasse deklariert haben, wird ihr Standardkonstruktor implizit als privat deklariert und ist daher nicht außerhalb der Klasse Animal sichtbar.

Hinweis: Ссылка

    
code 23.12.2016, 15:36
quelle
1

Standardmäßig druckt javap nicht private Mitglieder der Klassen.

Sie können die Option -p verwenden, um alle Klassen und Mitglieder anzuzeigen.

%Vor%     
isprout 18.07.2017 11:27
quelle

Tags und Links