Zurück zu: Java Tutorial
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:
MEDIUM
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:
Mittleres Level
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:
NIEDRIG
MITTEL
HOCH
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.