English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Java

Java Controllo dei flussi

Java Array

Java Orientato agli oggetti (I)

Java Orientato agli oggetti (II)

Java Orientato agli oggetti (III)

Gestione delle eccezioni Java

Java List

Java Queue (Coda)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Classe anonima Java

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

  1. Superclasse ereditata dalla classe anonima

  2. 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.

Esempio 1: Classe anonima interna che eredita una classe

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.

Esempio 2: Classe anonima che implementa un'interfaccia

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.

Vantaggi delle classi anonime

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.