Enum in Java ti permette di creare variabili con valori definiti. Queste variabili vengono scritte in lettere maiuscole e non possono essere mo­di­fi­ca­te suc­ces­si­va­men­te. Il loro scopo è mi­glio­ra­re la logica e la leg­gi­bi­li­tà del tuo codice e con­tri­bui­sco­no quindi al Clean Code.

Che cosa con­trad­di­stin­gue enum in Java?

In Java, il termine “enum” indica un tipo di dati uti­liz­za­bi­le all’interno di una classe con­ven­zio­na­le, ma che si distingue da essa so­prat­tut­to per un aspetto. Enum è infatti un genere di variabile che dispone di opzioni per i valori in­ter­na­men­te definite, fissate e quindi limitate. Questa classe comprende quindi costanti che im­pe­di­sco­no di uti­liz­za­re valori in­de­si­de­ra­ti all’interno del codice. Questa fun­zio­na­li­tà ga­ran­ti­sce la struttura logica del codice e aumenta la sua leg­gi­bi­li­tà. Il termine “enum” è in pratica l’ab­bre­via­zio­ne della parola “enu­me­ra­zio­ne”.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

La sintassi di enum in Java

La struttura della sintassi di enum in Java è sempre identica e si presenta così:

enum Nome_della_classe {
	VALORE1,
	VALORE2,
	VALORE3
}
java

Per definire questa classe devi iniziare quindi con la parola chiave “enum”, da uti­liz­za­re al posto di “class” o “interface”. Suc­ces­si­va­men­te devi assegnare un nome alla classe speciale e indicare fra parentesi graffe le costanti con­sen­ti­te che desideri uti­liz­za­re. Le costanti vanno scritte sempre in lettere maiuscole e separate da virgole.

Esempio di classe speciale

Un possibile esempio di enum in Java è un elenco dei mesi. L’elenco contiene solo dodici valori possibili, che puoi creare come costanti. Se in futuro ti servirà una variabile del tipo “Mesi”, potrai uti­liz­za­re esclu­si­va­men­te le costanti definite. Il codice per questo esempio si presenta nel modo seguente:

enum Mesi {
	GENNAIO,
	FEBBRAIO,
	MARZO,
	APRILE,
	MAGGIO,
	GIUGNO,
	LUGLIO,
	AGOSTO,
	SETTEMBRE,
	OTTOBRE,
	NOVEMBRE,
	DICEMBRE
}
java

A questo punto, per di­chia­ra­re una variabile del tipo “Mesi” devi as­se­gnar­le un valore e uti­liz­za­re il comando Java System.out.println per vi­sua­liz­zar­la. Il codice si presenta così:

public class Main {
	public static void main(String[] args) {
Mesi mese = Mesi.APRILE;
System.out.println(monat);
	}
}
java

Enum in Java all’interno di una classe

È possibile uti­liz­za­re enum in Java anche all’interno di una classe. Per il nostro esempio pre­ce­den­te il codice si pre­sen­te­reb­be così:

public class Main {
	enum Mesi {
	GENNAIO,
	FEBBRAIO,
	MARZO,
	APRILE,
	MAGGIO,
	GIUGNO,
	LUGLIO,
	AGOSTO,
	SETTEMBRE,
	OTTOBRE,
	NOVEMBRE,
	DICEMBRE
}
		public static void main(String[] args) {
Mesi mese = Mesi.APRILE;
System.out.println(monat);
		}
}
java

Il metodo values per l’in­ter­ro­ga­zio­ne di tutte le costanti

Se desideri vi­sua­liz­za­re tutti i valori di­spo­ni­bi­li, il metodo values() fa al caso tuo. Le costanti sono vi­sua­liz­za­te sotto forma di array. Nel nostro esempio il codice sarebbe:

enum Mesi {
	GENNAIO,
	FEBBRAIO,
	MARZO,
	APRILE,
	MAGGIO,
	GIUGNO,
	LUGLIO,
	AGOSTO,
	SETTEMBRE,
	OTTOBRE,
	NOVEMBRE,
	DICEMBRE
}
public class Main {
	public static void main(String[] args) {
for (Mesi mese : Mesi.values()) {
System.out.println(monat);
		}
	}
}
java

Enum in Java con switch

È possibile combinare enum in Java anche con altri metodi. Un esempio di com­bi­na­zio­ne con switch() si pre­sen­te­reb­be così:

enum Mesi {
	GENNAIO,
	FEBBRAIO,
	MARZO,
	APRILE,
	MAGGIO,
	GIUGNO,
	LUGLIO,
	AGOSTO,
	SETTEMBRE,
	OTTOBRE,
	NOVEMBRE,
	DICEMBRE
}
public class Main {
	public static void main(String[] args) {
		Mesi mese = Mesi.APRILE;
switch (mese) {
case APRILE:
System.out.println("La piscina esterna è chiusa.");
break;
case MAGGIO:
System.out.println("La piscina esterna è chiusa.");
break;
case GIUGNO:
System.out.println("La piscina esterna è a vostra disposizione!");
break;
// Ora puoi sperimentare questo metodo per tutti i mesi.
		}
	}
}
java
Vai al menu prin­ci­pa­le