Enumerazioni Java
Enum
An enum
è una "classe" speciale che rappresenta un gruppo di
costanti (variabili non modificabili, come final
le variabili).
Per creare un enum
, usa la enum
parola chiave (invece di classe o interfaccia) e separa le costanti con una virgola. Nota che dovrebbero essere in lettere maiuscole:
Esempio
enum Level {
LOW,
MEDIUM,
HIGH
}
Puoi accedere alle enum
costanti con la sintassi del punto :
Level myVar = Level.MEDIUM;
Enum è l'abbreviazione di "enumerazioni", che significa "elencato in modo specifico".
Enum all'interno di una classe
Puoi anche avere un enum
all'interno di una classe:
Esempio
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
System.out.println(myVar);
}
}
L'output sarà:
MEDIUM
Enum in un'istruzione Switch
Le enumerazioni vengono spesso utilizzate nelle switch
istruzioni per verificare i valori corrispondenti:
Esempio
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level myVar = Level.MEDIUM;
switch(myVar) {
case LOW:
System.out.println("Low level");
break;
case MEDIUM:
System.out.println("Medium level");
break;
case HIGH:
System.out.println("High level");
break;
}
}
}
L'output sarà:
Medium level
Passa attraverso un enum
Il tipo enum ha un values()
metodo che restituisce una matrice di tutte le costanti enum. Questo metodo è utile quando vuoi scorrere le costanti di un'enumerazione:
Esempio
for (Level myVar : Level.values()) {
System.out.println(myVar);
}
L'output sarà:
LOW
MEDIUM
HIGH
Differenza tra enumerazioni e classi
Una enum
lattina, proprio come una class
, ha attributi e metodi. L'unica differenza è che le costanti enum sono public
e static
( final
non modificabili - non possono essere sovrascritte).
An enum
non può essere utilizzato per creare oggetti e non può estendere altre classi (ma può implementare interfacce).
Perché e quando usare le enumerazioni?
Usa le enumerazioni quando hai valori che sai non cambieranno, come i giorni del mese, i giorni, i colori, il mazzo di carte, ecc.