Java enums - so geht's
Java enums sind Variablentypen mit festgelegten Wertemöglichkeiten. Sie dienen der Lesbarkeit und der logischen Struktur Ihres Codes.
- Jan-Hendrik Eriksen
Mit enums (kurz für enumeration, zu deutsch: Aufzählung) bietet Java Ihnen als Programmierer die Möglichkeit, vordefinierte Konstanten für Ihre Variablen festzulegen. Dies ist besonders dann sinnvoll, wenn eine Variable nur eine kleine Anzahl von benennbaren Zuständen hat. Dabei kann es sich zum Beispiel um Spielkarten (Kreuz, Pik, Herz, Karo) handeln oder auch um den Namen des Wochentags.
Einen enum-Typen definieren
Einen enum fĂĽr Wochentage definieren Sie mit folgender Syntax:
public enum WeekDay
{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
WeekDay ist hier der Bezeichner des enums. Dieser Name wird später auch zur Deklaration von Variablen dieses Typs verwendet. Die Wochentage MONDAY, TUESDAY, ... sind die möglichen Werte, die eine Variable vom Typ WeekDay annehmen kann. Alternativ können Sie auch jede andere Belegung für Ihre Variablen wählen. Für das oben genannte Beispiel der Spielkarten würden Sie folgene Syntax verwenden:public enum Cards{
CLUBS, SPADES, HEARTS, DIAMONDS}
Eine enum-Variable erstellen
So deklarieren Sie eine Variable vom Typ WeekDay und weisen ihr einen Wert zu.
WeekDay day = WeekDay.MONDAY;
WeekDay ist nun das SchlĂĽsselwort fĂĽr den soeben erstellten enum-Typen.Wird die Variable so auf der Konsole ausgegeben, erscheint der String "MONDAY" auf der Konsole.
System.out.println(day);
Anwendungsbeispiel
Die Variable day kann auch in logischen AusdrĂĽcken verglichen werden. So kann man den Wochentag nun beispielsweise in einer switch-Konstruktion abfragen:
String message = "";
WeekDay day = WeekDay.FRIDAY;
switch(day)
{
case MONDAY:
case TUESDAY:
case WEDNESDAY:
message = "Kopf hoch, die Woche hat gerade erst angefangen.";
break;
case THURSDAY:
case FRIDAY:
message = "Bald ist das Wochenende da!";
break;
case SATURDAY:
case SUNDAY:
message = "Endlich Wochenende!";Die Ausgabe des Codes ändert sich je nach Zustand der day-Variable.
}
System.out.println(message);
(jher)