Java - Enumérations de chaînes

Bonjour à tous, aspirants programmeurs Java !aujourd'hui, nous allons plonger dans le monde fascinant des Enumérations de chaînes en Java. Ne vous inquiétez pas si vous êtes complètement nouveau en programmation – je vais vous guider étape par étape, tout comme j'ai fait pour d'innombrables étudiants au fil des années. Alors, embarquons ensemble dans cette aventure passionnante !

Java - Enum Strings

Qu'est-ce qu'une enumération ?

Avant de nous plonger dans les Enumérations de chaînes, commençons par les bases. Les enumérations, abrégées en "enums", sont un type spécial en Java qui représente un ensemble fixe de constantes. Pensez-y comme une liste prédéfinie d'options qui ne changera pas au cours de votre programme.

Imaginez que vous créez un programme pour une caféteria. Vous pourriez avoir un ensemble fixe de tailles de tasses : PETIT, MOYEN et GRAND. C'est un cas parfait pour utiliser une énumération !

Voici comment nous pourrions définir cette énumération :

public enum TailleTasse {
PETIT,
MOYEN,
GRAND
}

Maintenant, voyons comment nous pouvons utiliser cette énumération dans notre code :

public class CafeShop {
public static void main(String[] args) {
TailleTasse monCommande = TailleTasse.MOYEN;
System.out.println("Je voudrais un café " + monCommande + ", s'il vous plaît !");
}
}

Lorsque vous exécutez ce code, il affichera : "Je voudrais un café MOYEN, s'il vous plaît !"

Enumérations de chaînes : Un regard plus approfondi

Maintenant que nous comprenons ce que sont les énumérations, examinons les Enumérations de chaînes. Par défaut, lorsque vous imprimez une valeur d'énumération, Java utilise son nom comme une chaîne. Mais que faire si vous souhaitez personnaliser la manière dont vos valeurs d'énumération sont représentées sous forme de chaînes ?

C'est là que la méthode toString() devient pratique. Enhancions notre énumération TailleTasse pour fournir des chaînes descriptives plus détaillées :

public enum TailleTasse {
PETIT("Petit (8 oz)"),
MOYEN("Moyen (12 oz)"),
GRAND("Grand (16 oz)");

private final String description;

TailleTasse(String description) {
this.description = description;
}

@Override
public String toString() {
return this.description;
}
}

Voyons ce qui se passe ici :

  1. Nous avons ajouté un champ description à notre énumération.
  2. Nous avons créé un constructeur qui prend cette description en paramètre.
  3. Nous avons surclassé la méthode toString() pour retourner notre description personnalisée.

Maintenant, utilisons notre énumération améliorée :

public class CafeShop {
public static void main(String[] args) {
TailleTasse monCommande = TailleTasse.MOYEN;
System.out.println("Je voudrais un café " + monCommande + ", s'il vous plaît !");
}
}

Cette fois, lorsque vous exécutez le code, il affichera : "Je voudrais un café Moyen (12 oz), s'il vous plaît !"

N'est-ce pas génial ? Nous avons personnalisé la manière dont nos valeurs d'énumération sont représentées sous forme de chaînes !

Travailler avec les Enumérations de chaînes

Maintenant que nous savons comment créer des représentations de chaîne personnalisées pour nos énumérations, examinons quelques opérations courantes que vous pourriez effectuer avec les Enumérations de chaînes.

Convertir une énumération en chaîne

Nous avons déjà vu comment convertir une énumération en chaîne en utilisant la méthode toString(). Mais il y a une autre façon d'obtenir le nom d'une constante d'énumération sous forme de chaîne :

TailleTasse taille = TailleTasse.GRAND;
String nomTaille = taille.name();
System.out.println("Le nom de l'énumération est : " + nomTaille);

Cela affichera : "Le nom de l'énumération est : GRAND"

Convertir une chaîne en énumération

Que faire si vous avez une chaîne et que vous souhaitez la convertir à nouveau en énumération ? Vous pouvez utiliser la méthode valueOf() :

String tailleChaîne = "PETIT";
TailleTasse taille = TailleTasse.valueOf(tailleChaîne);
System.out.println("L'énumération convertie est : " + taille);

Cela affichera : "L'énumération convertie est : Petit (8 oz)"

Itérer sur les valeurs de l'énumération

Parfois, vous pourriez souhaiter itérer sur toutes les valeurs d'une énumération. Vous pouvez le faire en utilisant la méthode values() :

System.out.println("Tailles de tasse disponibles :");
for (TailleTasse taille : TailleTasse.values()) {
System.out.println("- " + taille);
}

Cela affichera :

Tailles de tasse disponibles :
- Petit (8 oz)
- Moyen (12 oz)
- Grand (16 oz)

Exemple pratique : Système de commande de café

Mettons tout ce que nous avons appris dans un exemple plus complet. Nous allons créer un simple système de commande de café :

import java.util.Scanner;

public enum TypeCafe {
ESPRESSO("Un café fort brassé en forçant de l'eau chaude sous pression à travers des grains de café finement broyés."),
LATTE("Espresso avec du lait chauffé et une petite couche de mousse sur le dessus."),
CAPPUCCINO("Parts égales d'espresso, de lait chauffé et de mousse.");

private final String description;

TypeCafe(String description) {
this.description = description;
}

@Override
public String toString() {
return name() + " : " + this.description;
}
}

public class CafeShop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.println("Bienvenue dans notre caféteria !");
System.out.println("Voici nos types de café disponibles :");
for (TypeCafe type : TypeCafe.values()) {
System.out.println("- " + type);
}

System.out.print("Quel type de café souhaitez-vous ? ");
String choixUtilisateur = scanner.nextLine().toUpperCase();

try {
TypeCafe cafeChoisi = TypeCafe.valueOf(choixUtilisateur);
System.out.println("Excellent choix ! Vous avez commandé un " + cafeChoisi.name().toLowerCase() + ".");
} catch (IllegalArgumentException e) {
System.out.println("Désolé, nous n'avons pas ce type de café.");
}

scanner.close();
}
}

Ce programme fait ce qui suit :

  1. Nous définissons une énumération TypeCafe avec des descriptions pour chaque type de café.
  2. Dans la méthode main, nous affichons tous les types de café disponibles à l'utilisateur.
  3. Nous demandons à l'utilisateur de choisir un type de café.
  4. Nous essayons de convertir l'entrée de l'utilisateur en une énumération TypeCafe.
  5. Si cela réussit, nous confirmons leur commande. Sinon, nous les informons que nous n'avons pas ce type de café.

Conclusion

Félicitations ! Vous venez de plonger dans le monde des Enumérations de chaînes en Java. Nous avons couvert ce que sont les énumérations, comment personnaliser leurs représentations sous forme de chaînes et comment les travailler de diverses manières. Rappelez-vous, les énumérations sont un outil puissant en Java qui peut rendre votre code plus lisible et moins sujet aux erreurs lorsqu'il s'agit de gérer un ensemble fixe de constantes.

À mesure que vous continuez votre voyage en Java, vous trouverez de nombreuses autres utilisations pour les énumérations. Elles sont particulièrement utiles dans les instructions switch, pour représenter des états dans une machine à états, ou n'importe où vous avez un ensemble fixe d'options.

Continuez à pratiquer, restez curieux, et bon codage !

Credits: Image by storyset