English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai le classi anonime in Java attraverso esempi.
In Java, una classe può contenere un'altra classe chiamata classe annidata. È possibile creare una classe annidata senza fornire alcun nome.
Un'classe annidata senza nome è chiamata classe anonima.
Deve essere definita una classe anonima all'interno di un'altra classe. Pertanto, è anche chiamata classe interna anonima. La sua sintassi è:
class outerClass { //Definizione della classe anonima object1 = new Type(parameterList) { //Corpo della classe anonima }; };
La classe anonima di solito eredita una sottoclasse o implementa un'interfaccia.
Qui,Tipo (Type)può essere
Superclasse ereditata dalla classe anonima
Interfaccia implementata dalla classe anonima
Il codice sopra crea un oggetto di classe anonima object1 al runtime.
Attenzione:La classe anonima viene definita all'interno di un'espressione. Pertanto, alla fine della classe anonima viene utilizzato un punto e virgola per indicare la fine dell'espressione.
class Polygon { public void display() { System.out.println("All'interno della classe Polygon"); }; }; class AnonymousDemo { public void createClass() { //Creazione di una classe anonima, eredita la classe Polygon Polygon p1 = new Polygon() {}} public void display() { System.out.println("Interni delle classi anonime."); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
Risultato di output
Interni delle classi anonime
Nell'esempio sopra, abbiamo creato una classe Polygon. Ha un solo metodo display().
Poi, abbiamo creato una classe anonima che eredita la classe Polygon e overridden il metodo display().
Quando eseguiamo questo programma, creiamo un oggetto di classe anonima p1. Poi l'oggetto chiama il metodo display() della classe anonima.
interface Polygon { public void display(); }; class AnonymousDemo { public void createClass() { //匿名类实现接口 Polygon p1 = new Polygon() {}} public void display() { System.out.println("Interni delle classi anonime."); }; }; p1.display(); }; }; class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); }; };
Risultato di output
Interni delle classi anonime
Nel esempio sopra, abbiamo creato una classe anonima che implementa l'interfaccia Polygon.
Nella classe anonima, crea l'oggetto ogni volta che è necessario. È decir, crea l'oggetto per eseguire determinati compiti specifici. Ad esempio,
Object = new Example() { public void display() { System.out.println("La classe anonima sovrascrive il metodo display()."); }; };
Qui, quando dobbiamo sovrascrivere il metodo display(), viene creato dinamicamente un oggetto di classe anonima.
Le classi anonime ci aiutano a rendere il codice più conciso.