Java - Classes Anonymes

Salut à toi, futurs magiciens de Java ! Aujourd'hui, nous allons entreprendre un voyage passionnant à la découverte des Classes Anonymes en Java. Ne t'inquiète pas si tu es nouveau dans la programmation ; je vais te guider pas à pas à travers ce concept, avec plein d'exemples et d'explications. Alors, plongeons dedans !

Java - Anonymous Class

Quelles sont les Classes Anonymes ?

Imagines que tu es à un bal masqué. Tout le monde porte des masques, et tu ne peux pas distinguer qui est qui. Les classes anonymes en Java sont un peu comme ça - ce sont des classes sans nom, cachées derrière un masque de code !

Une classe anonyme est un type spécial de classe interne qui n'a pas de nom. Elle est déclarée et instanciée en une seule expression en utilisant le mot-clé new.

Pourquoi utiliser des Classes Anonymes ?

  1. Elles sont parfaites pour une utilisation unique.
  2. Elles aident à maintenir ton code concis.
  3. Elles sont idéales pour implémenter des interfaces simples ou étendre des classes à la volée.

Comment Définir une Classe Anonyme

Commençons par un exemple simple :

interface Salutation {
void saluer();
}

public class DemoClasseAnonyme {
public static void main(String[] args) {
Salutation salutationAnglaise = new Salutation() {
@Override
public void saluer() {
System.out.println("Hello, World !");
}
};

salutationAnglaise.saluer();
}
}

Dans cet exemple, nous avons créé une classe anonyme qui implémente l'interface Salutation. Decomposons cela :

  1. Nous définissons une interface simple Salutation avec un seul méthode, saluer().
  2. Dans la méthode main, nous créons une instance de Salutation en utilisant une classe anonyme.
  3. La classe anonyme fournit une implémentation pour la méthode saluer().
  4. Nous appelons la méthode saluer() sur notre objet salutationAnglaise.

Lorsque vous exécutez ce code, il affichera "Hello, World !" dans la console.

Types de Classes Intérieures Anonymes en Java

Il existe trois types principaux de classes intérieures anonymes en Java :

  1. Classe anonyme qui étend une classe
  2. Classe anonyme qui implémente une interface
  3. Classe anonyme définie à l'intérieur d'un argument de méthode/constructeur

Voyons des exemples de chacun :

1. Classe Anonyme qui Étend une Classe

abstract class Animal {
abstract void faireSon();
}

public class ClasseAnonymeEtend {
public static void main(String[] args) {
Animal chien = new Animal() {
@Override
void faireSon() {
System.out.println("Wouf ! Wouf !");
}
};

chien.faireSon();
}
}

Dans cet exemple, nous créons une classe anonyme qui étend la classe abstraite Animal et fournit une implémentation pour la méthode faireSon().

2. Classe Anonyme qui Implémente une Interface

Nous avons déjà vu cela dans notre premier exemple, mais voici un autre :

interface Calculable {
int calculer(int a, int b);
}

public class ClasseAnonymeImplémente {
public static void main(String[] args) {
Calculable additionneur = new Calculable() {
@Override
public int calculer(int a, int b) {
return a + b;
}
};

System.out.println("5 + 3 = " + additionneur.calculer(5, 3));
}
}

Cette classe anonyme implémente l'interface Calculable et fournit une implémentation pour la méthode calculer() qui additionne deux nombres.

3. Classe Anonyme à l'Intérieur d'un Argument de Méthode/Constructeur

public class ClasseAnonymeArgument {
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread anonyme est en cours d'exécution !");
}
});

t.start();
}
}

Ici, nous créons une classe anonyme qui implémente l'interface Runnable directement comme argument du constructeur Thread.

Quand Utiliser des Classes Anonymes

Les classes anonymes sont particulièrement utiles lorsque :

  1. Vous devez implémenter une interface ou étendre une classe pour une utilisation unique.
  2. L'implémentation est très courte et simple.
  3. Vous souhaitez éviter de créer une classe nommée pour une simple opération.

Cependant, si vous vous trouvez à réutiliser la même classe anonyme plusieurs fois, il pourrait être préférable de créer une classe nommée à la place.

Limitations des Classes Anonymes

Bien que les classes anonymes soient puissantes, elles ont quelques limitations :

  1. Elles ne peuvent implémenter qu'une seule interface ou étendre une seule classe à la fois.
  2. Elles ne peuvent pas avoir d'initialiseurs statiques ou des interfaces membres.
  3. Elles ne peuvent pas avoir de constructeurs (puisque她们没有名字).

Conclusion

Les classes anonymes en Java sont comme des agents secrets dans votre code -她们进来,完成任务,然后消失,不留下任何痕迹(或名字)。 C'est un outil puissant pour créer des classes d'utilisation unique rapides qui peuvent rendre votre code plus concis et lisible.

Souviens-toi, comme avec n'importe quel concept de programmation, la pratique rend parfait. Essaie de créer tes propres classes anonymes et expérimente avec différents cas d'utilisation. Avant de savoir dire, tu utiliseras les classes anonymes comme un véritable ninja Java !

Bonne programmation, et puissent vos classes anonymes vous saluer toujours avec une joyeuse "Hello, World !"

Credits: Image by storyset