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") ;
}
}
Termes de recherche utilisés:
- exercices classes dénumération java
