Einführung in interne Klassen
Eine in einer andere Klasse definierte Klasse wird als innere Klasse bezeichnet
Interne Klasse
1..NEW Um eine interne Klasse eines Mitglieds zu erstellen, müssen Sie zuerst eine Instanz der externen Klasse erstellen und dann ein Objekt der internen Klasse durch .NEW erstellen
2..Dieis können Sie über den Klassennamen auf alle Eigenschaften und Methoden externer Klassen zugreifen. Diese der externen Klasse.
public class test1 {String name = "Asnd"; public static void main (String [] args) {Test1 Test1 = new Test1 (); Innerer manner = test1.new Inner (); minner.print (); } void show () {System.out.println ("show"); } öffentliche Klasse Inner {String name = "123"; private void print () {show (); System.out.println (Name); // Druck 123 system.out.println (test1.this.name); // drucken asnd}}}Anonyme interne Klasse
Eine Klasse ohne Namen erstellt auch ein Objekt beim Erstellen einer Klasse.
Sie müssen die Klasse nur einmal verwenden, um anonyme interne Klassen zu verwenden
File file = new File ("d: /cc.txt") {@Override public boolean delete () {System.out.println ("nicht y/n löschen"); Scanner input = neuer Scanner (System.in); String str = input.Next (); if (str.equals ("y")) {return super.delete (); } System.out.println ("Delete fehlgeschlagen"); false zurückgeben; }}; Datei.delete (); }Anonymer Objekt
Das Objekt muss nur einmal zugegriffen werden.
neuer Thread () {@Override public void run () {System.out.println ("Thread Start!"); try {thread.sleep (2000); System.out.println ("Thread End!"); } catch (Ausnahme e) {e.printstacktrace (); } super.run (); } }.Start();Statische innere Klasse
1. Statische innere Klassen können nur auf statische Methoden und Variablen externer Klassen zugreifen und können nicht auf Nichtstatik zugreifen.
2. Statische innere Klassen können direkt erstellt werden, ohne Referenzen auf externe Klassen zu erstellen.
Anonyme interne Klassenzugriff auf lokale Variablen zugreifen
Interne Klassenzugriffszugriff auf lokale Variablen müssen endgültig sein. Wenn nicht hinzugefügt, wird JDK1.8 standardmäßig hinzugefügt. Wenn die verwendete Variable geändert wird, kann die folgende Methode verwendet werden oder das folgende Ich kann zu Beginn als statisch eingestellt werden.
für (int i = 0; i <5; i ++) {Final int finali = i; neuer Thread () {public void run () {System.out.println (Finali); }; }.Start(); }Das Folgende ist eine Einführung in die Implementierungsfähigkeiten interner Klassen
public static void main (String [] args) {lam mlam = new lam (); // Die erste Methode der Implementierung mlam.to (new Light () {@Override public void Shin () {System.out.println ("On's First -Methode");}}); // Die zweite Methode der Implementierungsklasse Mylam implementiert Licht (@Override public void Shin () {System.out.println ("Second"); }} mlam.to (New Mylam ()); }} Schnittstellenlicht {void Shin ();} Klasse Lam {public void to (ligh ligh) {ligh.shin (); System.out.println ("on"); }}Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!