Aufzählungen

0

Aufzählungen

Eine enum ist eine spezielle „Klasse“, die eine Gruppe von Konstanten darstellt (unveränderliche Variablen, wie etwa Final variablen).

Um eine enum zu erstellen, verwendest Du das Schlüsselwort enum (anstelle von class oder interface) und trennst Du die Konstanten durch Kommas. Beachtest Du, dass sie in Großbuchstaben geschrieben sein müssen:

Beispiel

enum Level {
  LOW,
  MEDIUM,
  HIGH
}

Du kannst auf enum konstanten mit der Punktsyntax zugreifen:

Level myVar = Level.MEDIUM;

Probier es aus im Online Compiler!

Enum ist die Abkürzung für „Enumerations“, was „speziell aufgelistet“ bedeutet.

Enum innerhalb einer Klasse

Du kannst auch eine enum innerhalb einer Klasse haben:

Beispiel

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

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

Die Ausgabe lautet:

Probier es aus im Online Compiler!

Enum in einer Switch-Anweisung

Enums werden häufig in switch-Anweisungen verwendet, um nach entsprechenden Werten zu suchen:

Beispiel

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("Niedriges Level");
        break;
      case MEDIUM:
         System.out.println("Mittleres Level");
        break;
      case HIGH:
        System.out.println("Hohes Level");
        break;
    }
  }
}

Die Ausgabe lautet:

Probier es aus im Online Compiler!

Durchlaufen einer Enum

Der Enumerationstyp hat eine values()-Methode, die ein Array aller Enumerationskonstanten zurückgibt. Diese Methode ist nützlich, wenn Sie alle Konstanten einer Enumeration durchlaufen möchten:

Beispiel

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

Die Ausgabe lautet:

Probier es aus im Online Compiler!

Unterschied zwischen Enums und Klassen

Ein enum kann, genau wie eine Klasse, Attribute und Methoden haben. Der einzige Unterschied besteht darin, dass Enumerationskonstanten öffentlich, statisch und final (unveränderlich – können nicht überschrieben werden) sind.

Mit einem Enum können keine Objekte erstellt werden und es können damit auch keine anderen Klassen erweitert werden (es können jedoch Schnittstellen implementiert werden).

Warum und wann verwendet man Enums?

Verwendest Du Enum, wenn Du Werte hast, von denen Du wisst, dass sie sich nicht ändern, wie Monatstage, Tage, Farben, Kartenspiele usw.

Nach oben scrollen