# Java Enums : comment créer des constantes dans votre code

Les enums en langage Java (en français « type énuméré ») vous permettent de créer des variables avec des valeurs fixes. Ces variables sont écrites en majuscules et ne peuvent pas être modifiées ultérieurement. Elles permettent d’améliorer la logique et la lisibilité de votre code et contribuent ainsi à créer un clean code.

## Qu’est-ce qui caractérise les enums en Java ?

Derrière le terme *Java Enums* se cache un [type de données](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/types-de-donnees-java/) qui peut certes être utilisé au sein d’une classe traditionnelle, mais qui s’en distingue principalement sur un point. Un enum est notamment un genre de variable qui dispose **d’options de valeurs définies, fixées et donc limitées**. Les enums en langage Java sont donc des constantes qui empêchent l’utilisation de valeurs non souhaitées dans un code. Cela permet de garantir la structure logique d’un code et d’en améliorer la lisibilité. Le terme « enum » est emprunté au mot anglais *enumeration* qui signifie « énumération » ou « liste ».

## La syntaxe des enums en Java

La syntaxe des enums en Java est toujours structurée de la même manière et ressemble à ceci :

```java
enum nom_de_la_classe {
	VALEUR1,
	VALEUR2,
	VALEUR3
}
```

Ainsi, si vous souhaitez définir cette classe, commencez par le mot-clé `enum`, que vous utiliserez à la place de `class` ou `interface`. Nommez ensuite la classe spéciale, puis placez les constantes autorisées souhaitées entre accolades. Les constantes sont **toutes écrites en majuscules** et séparées par des virgules.

## Exemple de classe spéciale

Un exemple possible d’enums en langage Java est une liste des mois de l’année. Celle-ci ne contient que douze valeurs possibles qui peuvent être créées comme constantes. Si une variable de type « mois » est requise ultérieurement, seules les constantes définies seront autorisées. Le code, dans cet exemple, prend la forme suivante :

```java
enum Mois {
	JANVIER,
	FEVRIER,
	MARS,
	AVRIL,
	MAI,
	JUIN,
	JUILLET,
	AOUT,
	SEPTEMBRE,
	OCTOBRE,
	NOVEMBRE,
	DECEMBRE
}
```

À présent, pour déclarer une variable de type « mois », il suffit de lui attribuer une valeur et d’utiliser la commande Java `System.out.println`, pour l’afficher. Dans le code, cela ressemble à ceci :

```java
public class Main {
	public static void main(String[] args) {
Mois mois = Mois.AVRIL;
System.out.println(mois);
	}
}
```

## Enums Java au sein d’une classe

Les enums Java peuvent également être utilisés à l’intérieur d’une classe. Pour notre exemple précédent, le code se présenterait ainsi :

```java
public class Main {
	enum Mois {
	JANVIER,
	FEVRIER,
	MARS,
	AVRIL,
	MAI,
	JUIN,
	JUILLET,
	AOUT,
	SEPTEMBRE,
	OCTOBRE,
	NOVEMBRE,
	DECEMBRE
}
		public static void main(String[] args) {
Mois mois = Mois.AVRIL;
System.out.println(mois);
		}
}
```

## La méthode values pour interroger toutes les constantes

Pour afficher toutes les valeurs disponibles, utilisez la méthode `values()`. Celle-ci affiche les constantes sous forme de tableau. Dans notre exemple, le code correspondant serait :

```java
enum Mois {
JANVIER,
FEVRIER,
MARS,
AVRIL,
MAI,
JUIN,
JUILLET,
AOUT,
SEPTEMBRE,
OCTOBRE,
NOVEMBRE,
DECEMBRE
}
public class Main {
	public static void main(String[] args) {
for (Mois mois : Mois.values()) {
System.out.println(mois);
		}
	}
}
```

## Enums Java avec switch

En langage Java, il est également possible de combiner les enums avec d’autres méthodes. Voici un exemple de combinaison avec `switch()` :

```java
enum Mois {
JANVIER,
FEVRIER,
MARS,
AVRIL,
MAI,
JUIN,
JUILLET,
AOUT,
SEPTEMBRE,
OCTOBRE,
NOVEMBRE,
DECEMBRE
}
public class Main {
	public static void main(String[] args) {
		Mois mois = Mois.AVRIL;
switch (mois) {
case AVRIL:
System.out.println("La piscine municipale est fermée.");
break;
case MAI:
System.out.println("La piscine municipale est fermée.");
break;
case JUIN:
System.out.println("La piscine municipale se réjouit de votre visite !");
break;
// Vous pouvez désormais essayer cela pour tous les mois.
		}
	}
}
```


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/les-enums-en-java/](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/les-enums-en-java/) for AI/LLM consumption.