Classes anonymes en Java

Objets et classes Java

En Java, une classe peut contenir une autre classe et être instanciée directement sans fournir de nom de classe.

Elle est principalement utilisée pour créer un objet afin d'exécuter une tâche spécifique lorsque cela est nécessaire, ce qui rend le code plus concis.

Les classes anonymes sont des classes qui ne peuvent pas avoir de nom. Elles ne peuvent pas être référencées et ne peuvent être utilisées qu'au moment de la création avecnewune instruction pour les déclarer.

Format de syntaxe d'une classe anonyme :

class outerClass {

    // 定义一个匿名类
    object1 = new Type(parameterList) {
         // 匿名类代码
    };
}

Le code ci-dessus crée un objet de classe anonyme object1. La classe anonyme est définie comme une expression, donc elle se termine par un point-virgule;pour terminer.

Les classes anonymes héritent généralement d'une classe parente ou implémentent une interface.

Classe anonyme héritant d'une classe parente

Dans l'exemple suivant, une classe Polygon est créée. Cette classe n'a qu'une seule méthode, display(). La classe AnonymousDemo hérite de la classe Polygon et redéfinit sa méthode display() :

Exemple

class Polygon {
   public void display() {
      System.out.println("À l'intérieur de la classe Polygon");
   }
}

class AnonymousDemo {
   public void createClass() {

      // La classe anonyme créée hérite de la classe Polygon
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("À l'intérieur de la classe anonyme.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
       AnonymousDemo an = new AnonymousDemo();
       an.createClass();
   }
}

Lorsque le code ci-dessus est exécuté, un objet p1 de la classe anonyme est créé. Cet objet appelle la méthode display() de la classe anonyme, et la sortie est :

Inside an anonymous class.

Classe anonyme implémentant une interface

L'exemple suivant crée une classe anonyme qui implémente l'interface Polygon :

Exemple

interface Polygon {
   public void display();
}

class AnonymousDemo {
   public void createClass() {

      // La classe anonyme implémente une interface
      Polygon p1 = new Polygon() {
         public void display() {
            System.out.println("À l'intérieur de la classe anonyme.");
         }
      };
      p1.display();
   }
}

class Main {
   public static void main(String[] args) {
      AnonymousDemo an = new AnonymousDemo();
      an.createClass();
   }
}

La sortie est :

Inside an anonymous class.

Objets et classes Java

Autres extensions