LE ENUMERAZIONI IN JAVA
INTRODUZIONE ALLE ENUMERATION
Iniziamo osservando questo esempio.
Una enumerazione viene dichiarata e creata attraverso la parola chiave enum. Poi andiamo ad inserire il nome che vogliamo dare alla nostra enum, come se fosse una classe. Una enumerazione in Java è un Data Type vero e proprio, se vogliamo essere trasparenti dobbiamo dire che rappresenta una classe un po’ speciale. All’interno del body definiamo un insieme di costanti. Gli elementi di una enumerazione vengono detti costanti enumerative, ed infatti sono considerati in modo implicito come elementi public e final. Vediamo il programma di test in cui dichiariamo due variabili di tipo taglia.
Inoltre, possiamo visualizzare direttamente il nome della variabile t.
Possiamo infine usare le enumerazioni per controllare uno statement switch, vediamo l’esempio.
LE ENUM COME CLASSI
Abbiamo detto che le enumerazioni in Java sono classi un po’ particolari, possono avere costruttori, attributi e metodi. Vediamo un esempio.
I valori passati al costruttore si racchiudono tra parentesi tonde nella costanti enumerative.
Abbiamo aggiunto un progressivo numerico alle categorie che rappresentano le taglie. Vediamo il main.
Nel momento in cui inizializziamo la taglia con MEDIUM i costruttori sono già stati invocati.
LA CLASSE JAVA.LANG.ENUM
Tutte le enum derivano da una classe base che si trova nel package java.lang. Quando parliamo di schemi di classificazione, possiamo dividerli in due grandi famiglie, Ordinale e Nominale. Vediamo la figura.
Ordinale perché seguono un certo ordine, SMALL è minore di MEDIUM, LARGE è minore di EXTRALARGE, allo stesso modo un titolo di studio segue una classificazione Ordinale, prima viene il diploma poi la laurea. Nello schema Nominale non esiste un criterio di ordinamento, non ha senso dire che NORD viene prima di SUD, che EST viene prima di OVEST etc. In tutti questi casi stiamo enumerando una serie di valori che però non sono ordinati fra loro.
DUE METODI USATI NELLE ENUMERAZIONI
Un primo metodo che possiamo usare sulle enumerazioni è ordinal(), questo metodo utilizza la disposizione delle costanti della enumerazione e ritorna un int. Si basa sulla posizione delle costanti; quindi, si presuppone che siano già ordinate. CompareTo() ritorna un valore negativo se il valore dell’enumerazione su cui invochiamo il metodo viene prima del valore passato come argomento, zero se sono uguali, maggiore di zero se il valore dell’enumerazione su cui invochiamo il metodo viene dopo del valore passato come argomento.
LINK AI POST PRECEDENTI
LINK AL CODICE SU GITHUB
ESECUZIONE DEL CODICE DI ESEMPIO
- Scaricare il codice da GITHUB, lanciare il file JAR con il seguente comando in Visual Studio Code, posizionandosi nella directory contenente il JAR.
java -jar –enable-preview CorsoJava.jar
- Oppure mettere in esecuzione il main che si trova nel file CorsoJava.java.
Scrivi un commento