Ich habe in Java über Inneres gelesen. Ich habe diesen Code gefunden
%Vor% Nach dem Kompilieren gibt javap 'Animal$Brain'
die Ausgabe als
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
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.
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: Ссылка
Tags und Links java inner-classes javap