Aus früheren Studien wissen wir bereits, dass eine Klasse zwei wichtige Mitglieder haben kann: Mitgliedsvariablen und Methoden . Tatsächlich hat eine Klasse auch eine Art von Mitglied: eine innere Klasse. Wenn eine Klasse eine andere Klasse definiert, nennen wir eine solche Klasse eine innere Klasse , und die Klasse, die die innere Klasse enthält, wird eine äußere Klasse der inneren Klasse genannt.
1) Die Mitgliedsvariablen der äußeren Klasse der inneren Klasse sind in der inneren Klasse weiterhin gültig, und die Methoden in der inneren Klasse können auch die Methoden in der äußeren Klasse aufrufen.
2) Klassenvariablen und Klassenmethoden können nicht im Klassenkörper einer inneren Klasse deklariert werden. Im Klassenkörper einer äußeren Klasse kann eine innere Klasse verwendet werden, um Objekte als Mitglieder einer äußeren Klasse zu deklarieren.
3) Eine innere Klasse kann nur von ihren äußeren verschachtelten Klassen verwendet werden. Andere Klassen können die innere Klasse einer bestimmten Klasse nicht zum Deklarieren von Objekten verwenden.
Da die Mitgliedsvariablen der äußeren Klasse der inneren Klasse in der inneren Klasse gültig sind, ist die Interaktion zwischen der inneren Klasse und der äußeren Klasse sehr praktisch.
Zum Beispiel:
classRedCowForm{staticStringformName;RedCowcow;//Internes Klassendeklarationsobjekt RedCowForm(){}RedCowForm(Strings){cow=newRedCow(88,66,2000);formName=s;}publicvoidshowCowMess(){cow.speak();}classRedCow {//Innere Klassendeklaration StringcowName=calf;intheight,weight,price;RedCow(inth,intw,intp){height=h;weight=w;price=p;}voidspeak(){System.out.println( Ich bin +cowName+, Höhe+Höhe+cm, Gewicht+Gewicht+kg, wohnhaft in +formName);}}}publicclassMain{publicstaticvoidmain(String[]args){RedCowFormform=newRedCowForm(dotcpp farm);form.showCowMess(); form. cow.speak();}}
Die Laufergebnisse sind wie folgt:
Ich bin ein Kalb. Ich bin 88 cm groß und wiege 66 kg.
Hinweis : Der Name der vom Java-Compiler generierten Bytecode-Datei der internen Klasse unterscheidet sich vom Namen der normalen Klasse. Das Namensformat der der internen Klasse entsprechenden Bytecode-Datei lautet „ Name der eingebetteten Klasse $ interner Klassenname “. Beispiel: Der Name der Bytecode-Datei der internen Klasse im obigen Beispiel sollte RedCowForm$RedCow.class lauten.
Innere Klassen können als statische innere Klassen geändert werden. Programme können statische innere Klassen in anderen Klassen verwenden, um Objekte zu erstellen.
Okay, jeder kann am Computer experimentieren und den Inhalt dieses Abschnitts verdauen und aufnehmen.