Théorie 2.2: énumération en Java #
Énumération ou enum
#
-
Un
enum
est simplement une liste de constantes -
P.ex. pour les sortes de cartes
public enum Sorte {
COEUR, CARREAU, TREFLE, PIQUE;
}
-
La valeur de la constante d’un
enum
est «cachée»-
le compilateur décide comment les représenter
-
p.ex. le compilateur pourrait décider
-
int COEUR = 0, CARREAU = 1, TREFLE = 2, PIQUE = 3;
-
(prends moins de place en mémoire que des chaînes!)
-
-
-
En JSON, on va représenter les constantes d’un
enum
comme des chaînes
Utiliser les constantes d’un enum
#
- On utilise l'
enum
comme une classe (un type de données)
import ca.ntro.cards.common.models.enums.Sorte;
public class Carte {
private int numero;
private Sorte sorte; // XXX: la valeur par défaut est null
public Carte() {
this.numero = 2;
this.sorte = Sorte.COEUR;
}
public Carte(int numero, Sorte sorte){
this.numero = numero;
this.sorte = sorte;
}
}
-
On doit importer
l'enum
, comme une classe -
On peut ensuite utiliser les constantes directement
-
Attention, la valeur par défaut d’une variable
Sorte
estnull
Méthodes fournies avec un enum
#
public class Carte {
public void test(Sorte sorte) {
String nom = sorte.name(); // le nom, p.ex. "COEUR"
int ordinal = sorte.ordinal(); // l'indice, p.ex. 0 pour COEUR
Sorte sorte = Sorte.valueOf("COEUR"); // la constante à partir du nom
}
}