Enumerazioni Java


Enum

An enumè una "classe" speciale che rappresenta un gruppo di costanti (variabili non modificabili, come finalle variabili).

Per creare un enum, usa la enumparola chiave (invece di classe o interfaccia) e separa le costanti con una virgola. Nota che dovrebbero essere in lettere maiuscole:

Esempio

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

Puoi accedere alle enumcostanti con la sintassi del punto :

Level myVar = Level.MEDIUM;

Enum è l'abbreviazione di "enumerazioni", che significa "elencato in modo specifico".


Enum all'interno di una classe

Puoi anche avere un enumall'interno di una classe:

Esempio

public class Main {
  enum Level {
    LOW,
    MEDIUM,
    HIGH
  }

  public static void main(String[] args) {
    Level myVar = Level.MEDIUM; 
    System.out.println(myVar);
  }
}

L'output sarà:

MEDIUM

Enum in un'istruzione Switch

Le enumerazioni vengono spesso utilizzate nelle switchistruzioni per verificare i valori corrispondenti:

Esempio

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

public class Main {
  public static void main(String[] args) {
    Level myVar = Level.MEDIUM;

    switch(myVar) {
      case LOW:
        System.out.println("Low level");
        break;
      case MEDIUM:
         System.out.println("Medium level");
        break;
      case HIGH:
        System.out.println("High level");
        break;
    }
  }
}

L'output sarà:

Medium level

Passa attraverso un enum

Il tipo enum ha un values()metodo che restituisce una matrice di tutte le costanti enum. Questo metodo è utile quando vuoi scorrere le costanti di un'enumerazione:

Esempio

for (Level myVar : Level.values()) {
  System.out.println(myVar);
}

L'output sarà:

LOW
MEDIUM
HIGH

Differenza tra enumerazioni e classi

Una enumlattina, proprio come una class, ha attributi e metodi. L'unica differenza è che le costanti enum sono publice static( final non modificabili - non possono essere sovrascritte).

An enumnon può essere utilizzato per creare oggetti e non può estendere altre classi (ma può implementare interfacce).

Perché e quando usare le enumerazioni?

Usa le enumerazioni quando hai valori che sai non cambieranno, come i giorni del mese, i giorni, i colori, il mazzo di carte, ecc.