Exercice Java : Ajout de méthodes et de champs à une énumération


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

Summary:

Exercice Java : Ajout de méthodes et de champs à une énumération

Exercice java traite le  sujet suivant:

Comment Ajouter de méthodes et de champs à une énumération

Il est possible de définir des méthodes spécifiques à l’intérieur de la classe constituée par un type énuméré.

Examinons ce petit Exercice java:



Définir un type énuméré nommé Mois permettant de représenter les douze mois de l’année, en utilisant les noms usuels (janvier, fevrier, mars…) et en associant à chacun le nombre de jours correspondants. On ne tiendra pas compte des années bisextiles.
Écrire un petit programme affichant ces différents noms avec le nombre de jours correspondants comme dans :

janvier comporte 31 jours
fevrier comporte 28 jours
mars comporte 31 jours
   .....
octobre comporte 31 jours
novembre comporte 30 jours
decembre comporte 31 jours

Java vous permet de doter un type énumération de champs et de méthodes, comme s’il s’agissait d’une classe. Certaines de ces méthodes peuvent être des constructeurs ; dans ce cas, il est nécessaire d’utiliser une syntaxe spéciale dans la  définition du type énuméré pour fournir les arguments destinés au constructeur, en association avec le libellé  correspondant.
Voici comment nous pourrions définir notre type Mois, en le munissant :

  • d’un champ nj destiné à contenir le nombre de jours d’un mois donné,
  • d’un constructeur recevant en argument le nombre de jours du mois,
  • d’une méthode nbJours fournissant le nombre de jours associé à une valeur donnée.
enum Mois
{ janvier (31),   fevrier (28), mars (31),     avril (30),
  mai (31),       juin (30),    juillet (31),  aout (31),
  septembre (30), octobre (31), novembre (30), decembre (31) ;
  private Mois (int n) //constructeur(en argument,nombre jours du mois)
  { nj = n ; ;
  }
  public int nbJours () { return nj ; }
  private int nj ;  
}

Notez les particularités de la syntaxe :

  • présence d’arguments pour le constructeur,
  • présence d’un point-virgule séparant l’énumération des valeurs du type des déclarations des champs et méthodes.

Voici un petit programme fournissant la liste voulue.

public class TstMois
{ public static void main (String args[])
  { for (Mois m : Mois.values() )
       System.out.println ( m + " comporte " + m.nbJours() + " jours") ;
  }
}

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>