Aufzählungstyp

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Aufzählungstyp (englisch enumerated type) ist ein Datentyp für Variablen mit einer endlichen Wertemenge. Alle zulässigen Werte des Aufzählungstyps werden bei der Deklaration des Datentyps mit einem eindeutigen Namen (Identifikator) definiert, sie sind Symbole. Dabei kann auch eine Reihenfolge festgelegt werden, die eine Ordnung der einzelnen Werte bestimmt, nach der dann sortiert werden kann.

Bei Aufzählungstypen kann mitunter auch der textuelle Name eines Symbols direkt Verwendung finden, gewissermaßen als festgelegte Zeichenkette.

Unterstützende Sprachen[Bearbeiten | Quelltext bearbeiten]

Aufzählungstypen sind zum Beispiel in den Programmiersprachen Pascal, Modula-2, Modula-3, Ada, Haskell, C, C++ und C# üblich. In Java werden Aufzählungen erst seit der Version 5 unterstützt, dafür sind sie hier als echte Objekte mit objektorientierten Mitteln erweiterbar.

Typsicherheit[Bearbeiten | Quelltext bearbeiten]

Man unterscheidet typenlose Aufzählungen wie in C, die lediglich Namen für numerische Werte festlegen (im Allgemeinen Ganzzahlen), und typsichere Aufzählungen wie in Pascal und Java. Typsichere Aufzählungstypen verhindern, dass Werte aus unterschiedlichen Aufzählungstypen verglichen oder zugewiesen werden können. So wäre beispielsweise die Farbe BLAU aus dem unten stehenden Beispiel ein anderer Wert als das erste Element eines anderen Aufzählungstypen (zum Beispiel APFEL der Aufzählung Obst). Eine Variable vom Typ Farbe ist nicht zuweisungskompatibel mit einem Wert vom Typ Obst. Dies bringt den Vorteil, dass der Compiler keine fehlerhaften Zuweisungen zulässt.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Der einfachste und häufigste Aufzählungstyp mit exakt zwei gültigen Werten ist der logische Datentyp Boolean:

Aufzählungstyp boolean ist {false, true};

Ein Beispiel für einen Aufzählungstyp, der Farben repräsentiert:

Aufzählungstyp Farbe ist {BLAU, GRUEN, ROT, GELB};

Ein Beispiel für einen Aufzählungstyp, der Obst repräsentiert:

Aufzählungstyp Obst ist {APFEL, KIRSCHE, PFLAUME};

Dies ermöglicht die folgende Zuweisung, in welcher der Variablen tapetenfarbe vom Typ Farbe der Wert BLAU zugewiesen wird:

Variable tapetenfarbe ist vom Datentyp Farbe;
setze tapetenfarbe auf BLAU;

In einer typensicheren Programmiersprache würde Folgendes einen Fehler erzeugen:

setze tapetenfarbe auf VIOLETT; //Fehler: kein vereinbartes Symbol (in Typ Farbe)
setze tapetenfarbe auf APFEL; //Fehler: APFEL ist nicht zuweisungskompatibel zum Datentyp Farbe!

Bei typenlosen Aufzählungen (wie in der Sprache C) ist möglich:

setze tapetenfarbe auf APFEL; //kein Fehler! Weil APFEL ebenso für eine Ganzzahl steht wie z. B. GELB.

Weblinks[Bearbeiten | Quelltext bearbeiten]