Exercice Java : Définition et utilisation d’un type énuméré simple


Reviewed by:
Rating:
5
On February 21, 2013
Last modified:February 21, 2013

Summary:

Exercice Java : Définition et utilisation d’un type énuméré simple

Exercice java traite le  sujet suivant:

Définition et utilisation d’un type énuméré simple

Examinons ce petit Exercice java:



  1. Définir un type énuméré nommé Couleurs dont les valeurs sont définies par les identificateurs suivants : rouge, bleu, vert, jaune.
  2. Déclarer deux variables c1 et c2 du type Couleurs et leur affecter une valeur.
  3. Échanger le contenu de ces deux variables, en s’assurant au préalable que leurs valeurs ne sont pas égales.
  4. Regrouper toutes ces instructions dans une petit programme complet (on pourra ajouter des instructions d’affichage des valeurs des variables avant et après échange).

1. La définition d’un type énuméré en Java utilise une syntaxe de la forme :
enum NomType { valeur1, valeur2, … valeurN }
soit, ici :

enum Couleurs { rouge, bleu, vert, jaune }

Notez que, bien que l’on emploie le mot-clé enum et non class, Couleurs est à considérer comme un classe  particulière. Les valeurs du type (rouge, bleu, vert et jaune) en sont des instances finales (non modifiables).
2. La déclaration de variables du type Couleurs est classique :

Couleurs c1, c2 ;

On ne peut affecter à ces variables que des valeurs du type Couleurs. Ici, il peut s’agir de l’une des 4 constantes du type : on les nomme en les préfixant du nom de type (ici Couleurs) comme dans :

c1 = Couleurs.bleu ;   // attention : c1 = bleu serait erroné
c2 = Couleurs.jaune ;

3. La comparaison de deux variables de type énuméré peut se faire indifféremment avec l’un des opérateurs == ou  equals. Rappelons que le premier compare les références des objets correspondants, tandis que le second porte sur les valeurs de ces objets. Mais, comme il n’existe qu’un exemplaire de chaque objet représentant un constante d’un type énuméré, il revient bien au même de comparer leur référence ou leur valeur. De même, on peut utiliser indifféremment != ou !equals.

if (c1 != c2)         //  ou if (! c1.equals(c2))
{ Couleurs c ;
  c = c1 ;
  c1 = c2 ;
  c2 = c ;
}

4. Voici un exemple complet reprenant ces différentes instructions, accompagné d’un exemple d’exécution. On notera qu’il est très facile d’afficher une valeur de type énuméré puisque l’appel implicite à la méthode toString pour une  instance de type énuméré fournit simplement le libellé correspondant :

public class EnumSimple
{ public static void main (String args[])
  { Couleurs c1, c2 ;
    c1 = Couleurs.bleu ;  // attention : c1 = bleu serait erroné
    c2 = Couleurs.jaune ;
    System.out.println ("couleurs avant echange=" + c1 + " " + c2);
    if (c1 != c2)     // ou if (! c1.equals(c2))
    { Couleurs c ;
      c = c1 ;
      c1 = c2 ;
      c2 = c ;
    }
    System.out.println ("couleurs apres echange=" + c1 + " " + c2);
  }
}
enum Couleurs {rouge, bleu, vert, jaune }

couleurs avant echange = bleu jaune
couleurs apres echange = jaune bleu

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>