Médiaforma

Java – Enumérations

Print Friendly

Les énumérations sont utilisées pour définir des listes de valeurs. Elles héritent de la classe java.lang.Enum. Voici un exemple d’énumération :

enum Animal { chat, chien, cheval, poisson, girafe };

Cette simple instruction crée une structure de données qui contient cinq objets qui héritent de la classe java.lang.Object (et de ses méthodes : equals(), toString(), etc.).

Pour définir un objet de type chat, vous utiliserez l’instruction suivante :

Animal unChat = Animal.chat ;

 

Voici les méthodes utilisables sur une énumération :

Méthode Effet
toSTring() Nom de la constante désignée
valueOf() Valeur énumérée à partir de sa chaîne
values() Tableau contenant toutes les valeurs énumérées
ordinal() Numéro d’ordre d’un élément énuméré (le premier élément a pour numéro d’ordre 0)
compareTo() Compare le numéro d’ordre de deux éléments énumérés. Retourne leur distance, positive ou négative.

 

Exercice

Ecrivez quelques lignes de code pour tester ces méthodes. Par exemple, en utilisant NetBeans.

Solution

package test4;

enum Animal { chat, chien, cheval, poisson, girafe };

public class Test4 {

    public static void main(String[] args) {
        Animal unChat = Animal.chat;
        System.out.println(Animal.chat);

        Animal unChien = Animal.valueOf("chien");
        System.out.println(unChien);

        Animal[] lesAnimaux = Animal.values();
        for(Animal unAnimal:lesAnimaux)
          System.out.println(unAnimal);

        System.out.println("Position de \"chien\" dans Animal : " + unChien.ordinal());

        System.out.println("Comparaison chat et girafe : " + Animal.chat.compareTo(Animal.girafe));
        System.out.println("Comparaison poisson et chien : " + Animal.poisson.compareTo(Animal.chien));

    }

}

Et voici son exécution dans NetBeans :

 

Vous pouvez définir des constructeurs privés pour chacune des valeurs d’une énumération. Ainsi par exemple, vous pourrez associer une abréviation à chaque élément de l’abréviation.

Définissez la classe Animal comme ceci (remarquez que le mot-clé class a été remplacé par le mot-clé enum) :

public enum Animal {
    chat("CHA"), chien("CHI"), cheval("CHE"), poisson("POI"), girafe("GIR");

    private String code;

    private Animal(String code){
      this.code = code;
    }

    public String getCode(){
      return this.code;
    }

    public static void main(String[] args) {
    }

}

La création de chaque élément énuméré appelle le constructeur privé (private Animal) et initialise la propriété code avec le code qui lui est transmis, et donc avec l’abréviation de l’animal.

Par la suite, il suffit d’utiliser la méthode getCode() pour connaître l’abréviation associée à un animal donné.

Exercice

Complétez la méthode main() pour afficher l’abréviation associée au poisson.

Solution

public static void main(String[] args) {
    Animal unPoisson = Animal.poisson;
    System.out.println(unPoisson.getCode());
}
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply