Les enums en langage Java (en français « type énuméré ») vous per­met­tent de créer des variables avec des valeurs fixes. Ces variables sont écrites en ma­jus­cules et ne peuvent pas être modifiées ul­té­rieu­re­ment. Elles per­met­tent d’améliorer la logique et la li­si­bi­lité de votre code et con­tri­buent ainsi à créer un clean code.

Qu’est-ce qui ca­rac­té­rise les enums en Java ?

Derrière le terme Java Enums se cache un type de données qui peut certes être utilisé au sein d’une classe tra­di­tion­nelle, mais qui s’en distingue prin­ci­pa­le­ment 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 cons­tantes qui empêchent l’uti­li­sa­tion de valeurs non sou­hai­tées dans un code. Cela permet de garantir la structure logique d’un code et d’en améliorer la li­si­bi­lité. Le terme « enum » est emprunté au mot anglais enu­me­ra­tion qui signifie « énu­mé­ra­tion » ou « liste ».

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

La syntaxe des enums en Java

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

enum nom_de_la_classe {
	VALEUR1,
	VALEUR2,
	VALEUR3
}
java

Ainsi, si vous souhaitez définir cette classe, commencez par le mot-clé enum, que vous uti­li­se­rez à la place de class ou interface. Nommez ensuite la classe spéciale, puis placez les cons­tantes au­to­ri­sées sou­hai­tées entre accolades. Les cons­tantes sont toutes écrites en ma­jus­cules 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 cons­tantes. Si une variable de type « mois » est requise ul­té­rieu­re­ment, seules les cons­tantes définies seront au­to­ri­sées. Le code, dans cet exemple, prend la forme suivante :

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

À 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 :

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

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é­sen­te­rait ainsi :

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);
		}
}
java

La méthode values pour in­ter­ro­ger toutes les cons­tantes

Pour afficher toutes les valeurs dis­po­nibles, utilisez la méthode values(). Celle-ci affiche les cons­tantes sous forme de tableau. Dans notre exemple, le code cor­res­pon­dant serait :

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);
		}
	}
}
java

Enums Java avec switch

En langage Java, il est également possible de combiner les enums avec d’autres méthodes. Voici un exemple de com­bi­nai­son avec switch() :

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.
		}
	}
}
java
Aller au menu principal