Enum, introdotto in Java 5, è un tipo di dati speciale che consiste in un insieme di valori denominati predefiniti separati da virgole. Questi valori denominati sono noti anche come elementi o enumeratori o istanze enum. Poiché i valori nel tipo enum sono costanti, dovresti sempre rappresentarli in lettere MAIUSCOLE.
È possibile utilizzare un tipo Enum quando è necessario un insieme fisso di valori costanti predefiniti noti al momento della compilazione stessa. Esempi possono essere i giorni della settimana, le stagioni dell'anno, ecc.
Le seguenti caratteristiche fanno di enum una classe "speciale":
- le costanti enum non possono essere sovrascritte
- enum non supporta la creazione di oggetti
- enum non può estendere altre classi
- enum può implementare interfacce come le classi
Sintassi:
In Java, per definire un tipo Enum, viene utilizzata la parola chiave "enum" anziché "classe" o "interfaccia". Quindi:
enum Nome_variabile { valore_1, valore_2, ..... , valore_n }
Java supporta due tipi di dati:
- Tipi di dati definiti dall'utente
- Tipi di dati incorporati: int, float, double, char, ecc.
A volte i tipi di dati incorporati non sono sufficienti. Supponiamo di avere dati di diversi tipi che devono essere archiviati in una singola variabile. In una situazione del genere, i tipi di dati incorporati non soddisferanno la necessità. Ecco perché è necessario disporre di tipi di dati definiti dall'utente è uno di questi sono gli enum in Java.
Esempio 1:
package com.saverioriotto.example;
enum Auto{
AUDI,OPEL,HONDA,TESLA;
}
public classExample{
public static void main(String [] args) {
Auto c1 = Auto.AUDI;
System.out.println(c1);
}
}
//---------------------------------------
// Output
// AUDI
Esempio 2:
// Inizializzazione di valori specifici per enumerazioni Java
package com.saverioriotto.example;
class EsempioInizializzazione{
enum pasti{
COLAZIONE(8), PRANZO(11), SPUNTINO(16), CENA(20);
private int valore;
private pasti(int valore){
this.valore=valore;
}
}
public static void main(String args[]){
for(pasti p: pasti.values())
System.out.println(p+" "+p.valore);
}
}
//---------------------------------------
// Output
// COLAZIONE 8
// PRANZO 11
// SPUNTINO 16
// CENA 20
Enum dovrebbe essere usato ogni volta che abbiamo bisogno di rappresentare un insieme fisso di costanti. Java li consiglia perché sono progettati per essere utilizzati per quello scopo specifico. Enum è indipendente dai tipi, estensibile e completamente supportato da qualsiasi libreria o framework moderno.