Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalUn enum (enumerazione) è un tipo di dato speciale introdotto in Java per rappresentare un insieme limitato e fisso di valori costanti.
In pratica serve quando una variabile può assumere solo alcuni valori predefiniti.
Esempi reali:
Prima degli enum si usavano spesso:
String stato = "ATTIVO";
oppure:
int stato = 1;
Problemi:
Gli enum risolvono questi problemi.
Un enum si dichiara con la parola chiave enum.
enum Giorno {
LUNEDI,
MARTEDI,
MERCOLEDI,
GIOVEDI,
VENERDI,
SABATO,
DOMENICA
}
Ogni valore è chiamato costante enum.
Giorno oggi;oggi = Giorno.LUNEDI;public class Main {
enum Stato {
ACCESO,
SPENTO
}
public static void main(String[] args) {
Stato lampada = Stato.ACCESO;
System.out.println(lampada); // -> Output: ACCESO
}
}
Gli enum funzionano perfettamente con if e switch.
if(lampada == Stato.ACCESO){
System.out.println("La lampada è accesa");
}
switch(lampada){
case ACCESO:
System.out.println("ON");
break;
case SPENTO:
System.out.println("OFF");
break;
}
Gli enum rendono gli switch molto più chiari.
Java fornisce alcuni metodi già pronti.
Restituisce tutti i valori.
for(Giorno g : Giorno.values()){
System.out.println(g);
}
Converte una stringa in enum.
Giorno g = Giorno.valueOf("LUNEDI");
WARNING
Deve essere scritto identico.
Restituisce la posizione.
System.out.println(Giorno.LUNEDI.ordinal()); // -> Output: 0
Molti non sanno che un enum è una classe speciale.
Può avere:
Per esempio:
enum Livello {
BASSO(1),
MEDIO(2),
ALTO(3);
private int codice;
Livello(int codice){
this.codice = codice;
}
public int getCodice(){
return codice;
}
}
Usare un enum quando:
Esempi ideali:
Cos'è un enum?
Gli enum possono contenere metodi?
Quale parola chiave crea un enum?
Quale metodo restituisce tutti i valori?
Quando è consigliato usare enum?
Creare un enum Semaforo con:
ROSSO, GIALLO, VERDE
Stampare il comportamento del semaforo.
enum Semaforo {
ROSSO,
GIALLO,
VERDE
}
public class Main {
public static void main(String[] args){
Semaforo s = Semaforo.ROSSO;
switch(s){
case ROSSO:
System.out.println("STOP");
break;
case GIALLO:
System.out.println("ATTENZIONE");
break;
case VERDE:
System.out.println("VAI");
break;
}
}
}Creare un enum Ruolo con:
ADMIN, USER, GUEST
Stampare un messaggio diverso per ogni ruolo.
Creare un enum Livello con un valore numerico associato e stampare il codice del livello scelto.
Prenota una lezione