Index
Related
- Java MOC
- e di Programmazione (class)]]
Introduzione
In Java, le enum sono un tipo speciale di classe che rappresenta un insieme di costanti. Sono utili quando si desidera lavorare con un gruppo di valori ben definiti e limitati.
Esempio
In questo esempio,
GiorniDellaSettimana
è una enum che rappresenta i sette giorni della settimana. Ogni giorno è definito come una costante all’interno della enum.Puoi utilizzare le enum come qualsiasi altro tipo di dato in Java. Ad esempio, puoi dichiarare una variabile di tipo
GiorniDellaSettimana
e assegnarle un valore:Puoi anche confrontare i valori delle enum utilizzando gli operatori di confronto, come ==:
Campi, Metodi, e Costruttori
Le enum possono avere campi, metodi e costruttori:
- Campi: che sono variabili di istanza che memorizzano informazioni relative a ogni costante dell’enum.
- Metodi: che vengono utilizzati per fornire funzionalità alle costanti dell’enum.
- Costruttori: che vengono utilizzati per inizializzare i campi di ogni costante dell’enum.
Costruttori Privati
È importante notare che i costruttori di un enum devono essere
private
, il che significa che non possono essere chiamati da fuori dell’enum. Ciò garantisce che le costanti dell’enum siano create solo una volta e che non possano essere modificate dopo la creazione.
Esempio
Main:
Metodi Polimorfici
Quando si definiscono metodi polimorfici all’interno di un enum, ogni costante dell’enum può avere una propria implementazione del metodo, il che consente di definire comportamenti diversi per ogni costante.
Esempio
Interfacce ed Enum
Interfacce
In Java, un’interfaccia è un tipo di astrazione che definisce un insieme di metodi che devono essere implementati dalle classi che implementano l’interfaccia.
Leggi: Java Interfaces
Le enum postare interfacce, il che significa che devono fornire implementazioni per tutti i metodi definiti nell’interfaccia.
Per implementare un’interfaccia in un enum, si utilizza la parola chiave implements
dopo la dichiarazione dell’enum, seguito dal nome dell’interfaccia. Successivamente, si forniscono le implementazioni dei metodi definiti nell’interfaccia all’interno della enum.
Esempio
In questo esempio, abbiamo definito un’interfaccia
Suonabile
che definisce un metodosuona()
che restituisce una stringa che rappresenta il suono che fa un animale. La enumAnimali
implementa l’interfacciaSuonabile
, il che significa che deve fornire un’implementazione del metodosuona()
.
Metodi predefiniti Enums
ordinal()
: Restituisce la posizione di una costante enum. Ad esempio,ordinal(SMALL)
restituisce0
.compareTo()
: Confronta le costanti enum in base al loro valore ordinale. Ad esempio,Size.SMALL.compareTo(Size.MEDIUM)
restituisceordinal(SMALL) - ordinal(MEDIUM)
.toString()
: Restituisce la rappresentazione stringa delle costanti enum. Ad esempio,SMALL.toString()
restituisce"SMALL"
.name()
: Restituisce il nome definito di una costante enum in forma di stringa. Il valore restituito dal metodoname()
è finale. Ad esempio,name(SMALL)
restituisce"SMALL"
.valueOf()
: Prende una stringa e restituisce una costante enum che ha lo stesso nome della stringa. Ad esempio,Size.valueOf("SMALL")
restituisce la costanteSMALL
.values()
: Restituisce un array di tipo enum che contiene tutte le costanti enum. Ad esempio,Size[] enumArray = Size.values()
.
Possibili Errori
Non sono sicuro che questi esempi siano giusti al 100%, ma per ora non sono riuscito a trovare niente di meglio.