Anonyme Java-Klasse
Anonyme Java-Klasse
In diesem Tutorial lernen Sie anhand von Beispielen anonyme Klassen in Java kennen.
In Java kann eine Klasse eine andere Klasse enthalten, die als verschachtelte Klasse bezeichnet wird. Es ist möglich, eine verschachtelte Klasse zu erstellen, ohne einen Namen anzugeben.
Eine verschachtelte Klasse, die keinen Namen hat, wird als anonyme Klasse bezeichnet.
Eine anonyme Klasse muss innerhalb einer anderen Klasse definiert werden. Daher wird sie auch als anonyme innere Klasse bezeichnet. Seine Syntax ist:
class outerClass {
// defining anonymous class
object1 = new Type(parameterList) {
// body of the anonymous class
};
}
Anonyme Klassen erweitern normalerweise Unterklassen oder implementieren Schnittstellen.
Hier tippen kann sein
- eine Oberklasse, die eine anonyme Klasse erweitert
- eine Schnittstelle, die eine anonyme Klasse implementiert
Der obige Code erstellt ein Objekt, object1
, einer anonymen Klasse zur Laufzeit.
Hinweis: Anonyme Klassen werden innerhalb eines Ausdrucks definiert. Daher wird das Semikolon am Ende anonymer Klassen verwendet, um das Ende des Ausdrucks anzuzeigen.
Beispiel 1:Anonyme Klasse, die eine Klasse erweitert
class Polygon {
public void display() {
System.out.println("Inside the Polygon class");
}
}
class AnonymousDemo {
public void createClass() {
// creation of anonymous class extending class Polygon
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
Ausgabe
Inside an anonymous class.
Im obigen Beispiel haben wir eine Klasse Polygon erstellt . Es hat eine einzige Methode display()
.
Wir haben dann eine anonyme Klasse erstellt, die die Klasse Polygon erweitert und überschreibt den display()
Methode.
Wenn wir das Programm ausführen, wird ein Objekt p1 der anonymen Klasse erstellt. Das Objekt ruft dann den display()
auf Methode der anonymen Klasse.
Beispiel 2:Anonyme Klasse, die eine Schnittstelle implementiert
interface Polygon {
public void display();
}
class AnonymousDemo {
public void createClass() {
// anonymous class implementing interface
Polygon p1 = new Polygon() {
public void display() {
System.out.println("Inside an anonymous class.");
}
};
p1.display();
}
}
class Main {
public static void main(String[] args) {
AnonymousDemo an = new AnonymousDemo();
an.createClass();
}
}
Ausgabe
Inside an anonymous class.
Im obigen Beispiel haben wir eine anonyme Klasse erstellt, die den Polygon
implementiert Schnittstelle.
Vorteile anonymer Klassen
In anonymen Klassen werden Objekte erstellt, wann immer sie benötigt werden. Das heißt, Objekte werden erstellt, um bestimmte Aufgaben auszuführen. Zum Beispiel
Object = new Example() {
public void display() {
System.out.println("Anonymous class overrides the method display().");
}
};
Hier wird ein Objekt der anonymen Klasse dynamisch erstellt, wenn wir den display()
überschreiben müssen Methode.
Anonyme Klassen helfen uns auch, unseren Code prägnant zu machen.
Java