Java - Enums : Guide pour Débutants
Bonjour à toi, aspirant programmeur Java !aujourd'hui, nous allons plonger dans le merveilleux monde des Enums Java. Ne t'inquiète pas si tu ne les as jamais entendus avant – à la fin de ce tutoriel, tu seras un expert en Enums ! Alors, prends une tasse de ton boisson préférée, et c'est parti !
Introduction aux Enums
As-tu déjà été dans une situation où tu avais besoin de représenter un ensemble fixe de constantes dans ton code ? Peut-être que tu créais un programme pour une caféteria et que tu avais besoin de représenter différentes tailles de tasses à café. Ou peut-être que tu construisais un jeu et que tu avais besoin de représenter les différentes directions dans lesquelles un personnage pourrait se déplacer. C'est là que les Enums viennent au secours !
Un Enum, abréviation de "enumeration," est un type spécial de classe en Java qui représente un groupe de constantes (variables inchangables, comme les variables finales). Penses-y comme une manière sophistiquée de créer un ensemble de valeurs prédéfinies qui ne changent pas.
Déclaration de Classe
Commençons par regarder comment nous déclarons un Enum. La syntaxe est assez simple :
enum CoffeeSize {
SMALL,
MEDIUM,
LARGE
}
Dans cet exemple, nous avons créé un Enum appelé CoffeeSize
avec trois constantes : SMALL, MEDIUM et LARGE. Note comment nous utilisons le mot-clé enum
au lieu de class
, et comment chaque constante est séparée par une virgule.
Constructeurs de Classe
Les Enums peuvent avoir des constructeurs, tout comme les classes régulières. Cela nous permet d'associer des données supplémentaires à chaque constante enum. Étendons notre exemple CoffeeSize
:
enum CoffeeSize {
SMALL(8),
MEDIUM(12),
LARGE(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
}
Dans cette version mise à jour, nous avons ajouté un constructeur qui prend un paramètre int
représentant le nombre d'onces pour chaque taille. Nous avons également ajouté un champ privé ounces
et une méthode getter getOunces()
.
Méthodes de Classe
Les Enums peuvent avoir des méthodes tout comme les classes régulières. Ajoutons une méthode à notre enum CoffeeSize
:
enum CoffeeSize {
SMALL(8),
MEDIUM(12),
LARGE(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
public String getDescription() {
return this.name() + " café (" + this.ounces + " oz)";
}
}
Nous avons ajouté une méthode getDescription()
qui retourne une chaîne décrivant la taille du café. La méthode name()
est héritée de la classe Enum
et retourne le nom de la constante sous forme de chaîne.
Méthodes Héritées
Tous les enums héritent implicitement de java.lang.Enum
. Cela signifie qu'ils viennent avec quelques méthodes intégrées. Voici les plus couramment utilisées :
Méthode | Description |
---|---|
name() |
Retourne le nom de la constante enum |
ordinal() |
Retourne la position de la constante enum (à partir de 0) |
valueOf(String name) |
Retourne la constante enum avec le nom spécifié |
values() |
Retourne un tableau contenant toutes les constantes enum |
Exemple
Maintenant, mettons tout ensemble dans un exemple complet :
public class CoffeeShop {
public static void main(String[] args) {
CoffeeSize mySize = CoffeeSize.MEDIUM;
System.out.println("J'ai commandé un " + mySize.getDescription());
System.out.println("Cette taille a une valeur ordinaux de : " + mySize.ordinal());
System.out.println("\nToutes les tailles disponibles :");
for (CoffeeSize size : CoffeeSize.values()) {
System.out.println(size.getDescription());
}
// Utilisation de valueOf
CoffeeSize anotherSize = CoffeeSize.valueOf("LARGE");
System.out.println("\nUtilisation de valueOf : " + anotherSize.getDescription());
}
}
enum CoffeeSize {
SMALL(8),
MEDIUM(12),
LARGE(16);
private final int ounces;
CoffeeSize(int ounces) {
this.ounces = ounces;
}
public int getOunces() {
return ounces;
}
public String getDescription() {
return this.name() + " café (" + this.ounces + " oz)";
}
}
Sortie
Lorsque vous exécutez ce programme, vous verrez la sortie suivante :
J'ai commandé un MEDIUM café (12 oz)
Cette taille a une valeur ordinaux de : 1
Toutes les tailles disponibles :
SMALL café (8 oz)
MEDIUM café (12 oz)
LARGE café (16 oz)
Utilisation de valueOf : LARGE café (16 oz)
Décompons ce qui se passe dans cet exemple :
- Nous créons une variable
CoffeeSize
mySize
et nous la définissons surMEDIUM
. - Nous imprimons la description de
mySize
en utilisant la méthodegetDescription()
. - Nous imprimons la valeur ordinaux de
MEDIUM
, qui est 1 (rappelez-vous, les valeurs ordinales commencent à 0). - Nous utilisons une boucle for-each pour itérer à travers toutes les valeurs
CoffeeSize
et imprimer leurs descriptions. - Enfin, nous démontrons l'utilisation de
valueOf()
pour obtenir la constante enumLARGE
par son nom.
Et voilà ! Vous avez juste pris vos premiers pas dans le monde des Enums Java. Ils sont un outil puissant pour représenter des ensembles fixes de constantes de manière sécurisée en termes de type.
N'oublie pas, les Enums sont plus que des constantes glorifiées. Ils peuvent avoir des constructeurs, des champs et des méthodes, ce qui les rend extrêmement polyvalents. Ils sont parfaits pour représenter des choses comme les jours de la semaine, les enseignes de cartes, les tailles de pizzas, ou tout autre ensemble de valeurs fixes dans vos programmes.
Au fur et à mesure de votre parcours Java, vous trouverez de nombreuses autres utilisations pour les Enums. Ils font partie fondamentale du langage Java, et maîtriser-les vous fera un programmeur plus efficace et efficace.
Continuez à pratiquer, à coder, et surtout, à apprécier le processus d'apprentissage. Avant que vous ne le sachiez, vous écrirez des programmes Java complexes avec facilité. Bon codage !
Credits: Image by storyset