Dieser Artikel beschreibt den Schöpfungs- und Hakenmechanismus von Java -Objekten der internen Klassen. Teilen Sie es für Ihre Referenz wie folgt weiter:
Obwohl interne Klassen in Java völlig unabhängig von ihren peripheren Klassen in Zustandsinformationen sind (sie kann ihre Funktionen direkt über interne Klasseninstanzen ausführen), sind Peripherieklassenobjekte die Grundlage für die Existenz interner Klassenobjekte.
Beim Generieren interner Klassenobjekte müssen Sie sicherstellen, dass sie periphere Klassenobjekte zum Haken haben können, damit Java eine strenge Syntax für die Generierung interner Klassenobjekte bietet.
Es gibt zwei Methoden, die im Allgemeinen zur Generierung interner Klassenobjekte verwendet werden.
Methode1: Standardmethode mit peripherer Klasseinstanz.NEW Internal Class Name ().
Beispiel 1:
öffentliche Klasse äußere {int no; Klasse innere implementiert interfacea {}} interfacea {} main () {outer instancea = new outer (); interfacea interfacea = instancea.New Inner (); // Achten Sie auf die Methode zur Generierung interner Klasseninstanzen, neue periphere Klasse -Instanz. Interner Klassenname (). Der Zweck davon ist sicherzustellen, dass die interne Klasseninstanz periphere Klasse -Instanz -Hook.interfacea interfaceB = instancea.new outer (); // Eine andere Instanz der internen Klasse generiert wird und auch an die Instanzinstange angehängt wird. }Methode2 : Verwenden Sie die Werksmethode, um ein Objekt direkt zurückzugeben, das eine bestimmte Schnittstelle implementiert (das Objekt ist im Allgemeinen eine interne Klasse).
Beispiel 1:
öffentliche Klasse äußere {int no; Klasse innere implementiert interfacea {} public interfacea createInNerInstance {return interfacea {read (); }}} interfaceaaaa {public void read ();} main () {outer instancea = new ober (); interfacea interfacea = instancea.createinnerinStance (); // Beachten Sie die Methode, die durch die interne Klasseninstanz generiert wurde, rufen direkt eine Factory -Methode an und geben Sie ein Objekt zurück, das das InterfacaceA -Interface implementiert. Interfacea interfaceB = instancea.createinnerinStance (); // Es wird eine neue Instanz der internen Klasse generiert und wird auch an die Instanzinstange angehängt. }Im Vergleich zur Verwendung des Instanznamens .New Class Name () erscheint die Fabrikmethode eleganter und klarer.
! Achten Sie auf das Nutzungsszenario der internen Klassen. Im Allgemeinen soll ein internes Klassenobjekt zurückgegeben werden, das eine bestimmte Schnittstellenfunktion nach außen implementiert und dann entsprechende Operationen ausführt. (Da die Mitglieder der peripheren Klasse für die interne Klasse vollständig sichtbar sind, sind ihre Bequemlichkeit und ihre Vorteile sehr offensichtlich)
Da der Compiler die Informationen zur peripheren Klasseninstanz automatisch erfasst, wenn das Objekt des inneren Klassen generiert wird, bietet Java auch eine. Diese Methode, um die peripheren Klasseninstanzen zurückzurufen (diese Methode ist manchmal sehr wichtig).
Beispiel:
public class OUTER {Klasse Inner {public outer callback () {return oUter.this} // callback () gibt einen Verweis auf das Objekt der peripheren Klasse des Objekthakens der inneren Klasse mit dem Syntax -Peripherieklassennamen zurück. }}For more Java-related content, readers who are interested in this site can view the topics: "Introduction and Advanced Tutorial on Java Object-Oriented Programming", "Tutorial on Java Data Structure and Algorithm", "Summary of Java Operation DOM Node Skills", "Summary of Java File and Directory Operation Skills" and "Summary of Java Cache Operation Skills"
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.