Java anonieme klasse
Java Anonieme Klas
In deze tutorial leer je over anonieme klassen in Java met behulp van voorbeelden.
In Java kan een klasse een andere klasse bevatten die geneste klasse wordt genoemd. Het is mogelijk om een geneste klasse te maken zonder een naam op te geven.
Een geneste klas die geen naam heeft, staat bekend als een anonieme klas.
Een anonieme klasse moet binnen een andere klasse worden gedefinieerd. Daarom staat het ook bekend als een anonieme innerlijke klasse. De syntaxis is:
class outerClass {
// defining anonymous class
object1 = new Type(parameterList) {
// body of the anonymous class
};
}
Anonieme klassen breiden meestal subklassen uit of implementeren interfaces.
Hier, Type kan zijn
- een superklasse die een anonieme klasse uitbreidt
- een interface die een anonieme klasse implementeert
De bovenstaande code maakt een object, object1
, van een anonieme klas tijdens runtime.
Opmerking: Anonieme klassen worden gedefinieerd binnen een expressie. De puntkomma wordt dus gebruikt aan het einde van anonieme klassen om het einde van de uitdrukking aan te geven.
Voorbeeld 1:Anonieme klas die een klas uitbreidt
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();
}
}
Uitvoer
Inside an anonymous class.
In het bovenstaande voorbeeld hebben we een klasse gemaakt Polygon . Het heeft een enkele methode display()
.
Vervolgens hebben we een anonieme klasse gemaakt die de klasse Polygon . uitbreidt en heft de display()
. op methode.
Wanneer we het programma uitvoeren, wordt een object p1 van de anonieme klasse wordt gemaakt. Het object roept dan de display()
methode van de anonieme klasse.
Voorbeeld 2:Anonieme klas die een interface implementeert
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();
}
}
Uitvoer
Inside an anonymous class.
In het bovenstaande voorbeeld hebben we een anonieme klasse gemaakt die de Polygon
. implementeert interface.
Voordelen van anonieme lessen
In anonieme klassen worden objecten gemaakt wanneer ze nodig zijn. Dat wil zeggen, objecten worden gemaakt om een aantal specifieke taken uit te voeren. Bijvoorbeeld,
Object = new Example() {
public void display() {
System.out.println("Anonymous class overrides the method display().");
}
};
Hier wordt een object van de anonieme klasse dynamisch gemaakt wanneer we de display()
. moeten overschrijven methode.
Anonieme lessen helpen ons ook om onze code beknopt te maken.
Java