Classe interne et anonyme en Java

En Java, une classe peut contenir une autre classe appelée classe interne. Il est possible de créer une classe interne sans lui donner un nom.

Une classe interne sans nom est connue sous le nom de classe anonyme.

Une classe anonyme doit être définie dans une autre classe. Donc, il est également connu comme une classe interne anonyme. Sa syntaxe est la suivante:
 
 

Exemple:

Le code suivant crée un objet « obj » d’une classe anonyme au moment de l’exécution.

class ClassA {
    // classe anonyme
    obj = new ClassB(parameters) {
         // corps de la classe anonyme
    };
}

Les classes anonymes héritent généralement des classes ou implémentent des interfaces.

Ici, « ClassB » peut être:

  • une superclasse qu’une classe anonyme hérite.
  • une interface qu’une classe anonyme implémente.

Remarque: les classes anonymes sont des expressions. Donc, le point-virgule est utilisé à la fin pour indiquer la fin de l’expression.
 
 

Exemple: Classe anonyme hérite une classe
class Msg {
   public void show() {
      System.out.println("Hello World!");
   }
}

class AnonymousClass {
   public void run() {
      // classe anonyme héritant la classe Msg
      Msg msg = new Msg() {
         public void show() {
            System.out.println("Welcome To WayToLearnX!");
         }
      };
      msg.show();
   }
}

public class Main {
   public static void main(String[] args) {
       AnonymousClass x = new AnonymousClass();
       x.run();
   }
}

 
Sortie:

Welcome To WayToLearnX!

Lorsque nous exécutons le programme, l’objet « msg » de la classe anonyme est créé. L’objet appelle ensuite la méthode show() de la classe anonyme.
 
 

Exemple: Classe anonyme implémente une interface
interface Msg {
   public void show();
}

class AnonymousClass {
   public void run() {
      // classe anonyme héritant la classe Msg
      Msg msg = new Msg() {
         public void show() {
            System.out.println("Welcome To WayToLearnX!");
         }
      };
      msg.show();
   }
}

public class Main {
   public static void main(String[] args) {
       AnonymousClass x = new AnonymousClass();
       x.run();
   }
}

 
Sortie:

Welcome To WayToLearnX!

Dans l’exemple ci-dessus, nous avons créé une classe anonyme qui implémente l’interface Msg.
QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *