I tipi enumerativi permettono di definire tipi che richiedono un numero limitato di valori specifici.
Per dichiarare un tipo enumerativo si usa la parola riservata enum
; i valori vanno elencati tra parentesi graffe separati da virgole.
I tipi enumerativi non si possono definire all’interno di metodi.
I valori sono costanti perciò i nomi si scrivono in maiuscolo.
enum TipoEnumerativo {VAL1, ..., VALN};
Si può dichiarare una variabile di tipo enumerativo che può assumere uno dei valori del tipo o il valore null
.
Si può fare riferimento a uno dei valori con la notazione TipoEnumerativo.VALORE
.
Sulle variabili di tipo enumerativo non è possibile fare operazioni di input.
Per la lettura di valori di tipo enumerativo si può ricorrere a istruzioni if e all’istruzione switch.
Definizione di un semaforo come tipo enumerativo.
Utilizzare il valore di un semaforo definito con un tipo enumerativo.
Le classi dei tipi enumerativi
La dichiarazione enum
definisce una classe; nel corpo della classe si possono definire variabili di istanza e metodi.
I tipi enumerativi sono classi che hanno un numero finito di esemplari: gli oggetti definiti tra le parentesi graffe; dato che la classe non ha costruttori pubblici non è possibile creare altri esemplari.
Tutti i tipi enumerativi estendono implicitamente java.lang.Enum
, da cui ereditano toString()
, e quindi non possono estendere alcuna altra classe.
Automaticamente i tipi enumerativi dispongono del metodo statico values()
che restituisce un array con i valori del tipo, nell’ordine in cui sono stati dichiarati.
Valori delle monete.