[JAVA] Anonyme Klasse (anonyme Klasse)

Was ist eine anonyme Klasse?

Es wird verwendet, wenn eine Klasse erstellt wird, die nur einmal vor Ort verwendet wird.

Normalerweise deklarieren Sie eine Klasse, die eine Schnittstelle implementiert, erstellen eine Instanz dieser Klasse und rufen eine Methode auf. Mit einer anonymen Klasse können Sie jedoch eine Schnittstelle deklarieren und gleichzeitig eine Methode verwenden.

Wenn Sie keine anonyme Klasse verwenden

Dieses Mal habe ich eine selbst erstellte Schnittstelle mit einer Methode namens Ausgabe verwendet.

IPrint


public interface IPrint {
	void output();
}

Erstellen Sie eine Klasse, die die IPrint-Schnittstelle implementiert, und beschreiben Sie die Verarbeitungsdetails in der Methode.

PrintImpl


public class PrintImpl implements IPrint{

	@Override
	public void output() {
		System.out.println("aaa");
	}
}

Rufen Sie es in der Ausführungsklasse auf.

Main


public class Main {

	public static void main(String[] args) {
		
		IPrint ip = new PrintImpl();
		ip.output();//Auf der Konsole"aaa"Wird ausgegeben
	}
}

Bei Verwendung einer anonymen Klasse

Sie können IPrint-Methoden in der Ausführungsklasse verwenden, ohne eine Klasse zu erstellen, die die Schnittstelle implementiert.

Main


public class Main {

	public static void main(String[] args) {
		
		IPrint ip = new IPrint() {
			@Override
			public void output() {
				System.out.println("aaa");
			}
		};
		ip.output();
	}
}

Zusätzlich kann die Anzahl der Zeilen mit einem Lambda-Ausdruck verkürzt werden.

Main


public class Main {

	public static void main(String[] args) {
			
		IPrint ip = () -> System.out.println("xxxx");
		
		ip.output(); // "xxxx"Wird ausgegeben
	}
}

Wenn Sie eine neue Methode hinzufügen, die sich nicht auf der Schnittstelle befindet, wird sie beim Erstellen der Instanz nicht als Schnittstellentypvariable empfangen.

Main


public class Main3 {

	public static void main(String[] args) {
		
		new IPrint() {
			@Override
			public void output() {
				System.out.println("aaa");
			}
			
			public void output2() {
				System.out.println("bbb");
			}
		}.output2();
	}
}

Recommended Posts

Anonyme Klasse (anonyme Klasse)
Anonyme Java-Klasse
Klassenmethode
ArrayList-Klasse
Anonyme Klasse (mit dem Ziel, Stream-API einzuführen)
Anonyme Klasse (anonyme Klasse)
Klassenmethode
ArrayList-Klasse
Einfaches Beispiel für einen Rückruf im Beispiel einer anonymen Java Part2-Klasse
Java-Klassenmethoden
Klasse und Modell
[Java] Klassenvererbung
Java HashMap-Klasse
Informationen zur Klassenvererbung.
Java (abstrakte Klasse)
[Java] Verschachtelte Klasse
Über die Java-Klasse
Apropos, eine anonyme Klasse ist erschienen.
String-Klassenmethoden
java.lang.IncompatibleClassChangeError: Klasse implementieren
[Java] Abstrakte Klasse
[Java] Objektklasse
Lokale Java-Klasse
Impl Klasse Vo Klasse
Laden der WildFly-Klasse