Home > Informatik > Begriffe und Konzepte > Enumerations

Enumerations

Definition

Enumerations

Unter diesem Begriff versteht man Bedingungen, die während der gesamten Lebensdauer eines Objekts stets erfüllt sein müssen. Siehe auch Desgin-by-Contract-Prinzip.

Beispiel
public class Algersauswertung
{
    public enum Altersgruppe
    {
       BABY, JUGENDLICHER, KIND, KLEINKIND, ERWACHSENER, RENTNER, ERROR
    }
    
    private Altersgruppe bestimmeAltersgruppe(int alter)
    {
       if (alter <  0) return Altersgruppe.ERROR; else
       if (alter <  2) return Altersgruppe.BABY; else
       if (alter <  6) return Altersgruppe.KLEINKIND; else
       if (alter < 14) return Altersgruppe.KIND; else
       if (alter < 18) return Altersgruppe.JUGENDLICHER; else
       if (alter < 67) return Altersgruppe.ERWACHSENER; else
       return Altersgruppe.RENTNER;
    }
    
    public void kleinerTest(int alter)
    {
       Altersgruppe gruppe = bestimmeAltersgruppe(alter);
       System.out.println("Mit " + alter + " Jahren: " + gruppe);
    }
}

Dieses Programm zeigt, wie man in Java eine Aufzählung (englisch enum) benutzt. Eine Aufzählung ist ein eigener Datentyp mit einer festen Anzahl möglicher Werte. Da es sich bei diesen Werten um nicht veränderbare Konstanten handelt, werden die Werte in Großbuchstaben geschrieben, wie alle Java-Konstanten.

In unserem Beispiel gibt es die Altersgruppen BABY, KLEINKIND, KIND, JUGENDLICHER, ERWACHSENER und RENTNER, außerdem die "Altersgruppe" ERROR, falls jemand mal ein Alter kleiner als 0 Jahre eingegeben hat.

Deklaration der Aufzählung:

    public enum Altersgruppe
    {
       BABY, JUGENDLICHER, KIND, KLEINKIND, ERWACHSENER, RENTNER, ERROR
    }

In dieser Deklaration wird festgelgt, welche Werte eine Variable vom Typ Altersgruppe haben darf.

Die Methode bestimmeAltersgruppe() fragt in einer geschachtelten if-else-Anweisung das als Parameter übergebene Alter ab und gibt dann die entsprechende Konstante der Aufzählung Altersgruppe zurück.

In der Methode kleinerTest() wird zunächst die Altersgruppe bestimmt und in der lokalen Variable gruppe gespeichert, die dann mit dem System.out.println()-Befehl ausgegeben wird.

Aufzählungen als eigene Klasse

Man kann eine Enumeration formal wie eine Java-Klasse behandeln, wie das folgende Beispiel zeigt:

public enum Altersgruppe
{
    KLEINKIND,
    KIND,
    JUGENDLICHER,
    ERWACHSENER,
    RENTNER
}

Hier sehen wir eine etwas vereinfachte Form der Aufzählung.

public class Altersdemo
{
    public Altersgruppe bestimmeGruppe(int alter)
    {
        if (alter < 6)  return Altersgruppe.KLEINKIND;
        if (alter < 14) return Altersgruppe.KIND;
        if (alter < 18) return Altersgruppe.JUGENDLICHER;
        if (alter < 67) return Altersgruppe.ERWACHSENER;
        return Altersgruppe.RENTNER;
    }
    
    public void zeigeGruppe(int alter)
    {
        Altersgruppe gruppe = bestimmeGruppe(alter);
        System.out.println("Mit " + alter + " Jahren: " + gruppe);
    }
}

Und hier sehen wir eine Java-Klasse Altersdemo, welche die Enumeration der Klasse Altersgruppe einbindet und auswertet.

Quellen:

  1. Lahres et al.: Objektorientierte Programmierung, Rheinwerk Computing 2021.
  2. Barnes, Kölling: Java lernen mit BlueJ - Objects first. Pearson-Verlag 2019.
  3. Ullenboom: Java ist auch eine Insel, Rheinwerk Computing 2023.