LE ENUMERAZIONI IN JAVA

INTRODUZIONE ALLE ENUMERATION

java-logo

Iniziamo osservando questo esempio.

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.

Classe di test

Inoltre, possiamo visualizzare direttamente il nome della variabile t.

Visualizzare la variabile

Possiamo infine usare le enumerazioni per controllare uno statement switch, vediamo l’esempio.

Statement switch

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.

Le enum come classi

I valori passati al costruttore si racchiudono tra parentesi tonde nella costanti enumerative.

Valori passati al costruttore

Abbiamo aggiunto un progressivo numerico alle categorie che rappresentano le taglie. Vediamo il main.

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.

Schemi di classificazione

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.

Metodi enumerazioni

LINK AI POST PRECEDENTI

IL LINGUAGGIO JAVA

LINK AL CODICE SU GITHUB

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.