13 Java – Enumerationen
Enumerationen sind spezielle Klassen, welche mit dem Keyword enum
gebildet werden. Sie repräsentieren eine Ansammlung von Konstanten – also unveränderliche Variablen. Jedes Element darf nur einmal vorkommen. Enumerationen werden meistens wie Top-Level-Klassen in eigenen Dateien geschrieben, können aber auch direkt in einer Klasse definiert werden.
Die Werte innerhalb von Enumerationen sind statisch. Sie werden also über den Klassennamen angesprochen.
Erweiterte Enumerationen
Auch Enumerationen können Konstruktoren haben. Diese Art von Enumerationen werden auch Advanced Enumerations genannt.
Methoden
Jede Klasse erbt intern bekanntlich von der Klasse Object
. Jede Enumeration erbt von der Klasse Enum
, welche wiederum von der Klasse Object
erbt. Somit können auch hier Methoden wie die toString()
-Methode überschrieben werden. Die toString()
-Methode ruft die name()
-Methode auf. Diese kann nicht überschrieben werden.
Die Methode values()
ist statisch und liefert alle Elemente einer Enumeration als Array. Diese können dann in einer Schleife durchlaufen werden.
Die Methode ordinal()
gibt die Ordinalzahl (Ordnungszahl) des jeweiligen Elements zurück. Die Position des Elements entspricht der Ordnungszahl beginnend bei 0
. Die compareTo()
-Methode vergleicht Aufzählungswerte über die Differenz der Ordinalzahlen.
Die valueOf()
-Methode gibt den Datentyp der spezifischen Enum
-Konstante über den jeweiligen Namen zurück. Der String muss genau mit dem Identifier der Konstanten übereinstimmen, der während der Deklarierung dieser Enumerationskonstante an sie vergeben wurde.
Methodenüberschreibung bei Enumerationen
Jede Enum
-Konstante ist eine Instanz der Enum
-Klasse. Diese Konstanten bieten die Möglichkeit, neben den gemeinsamen Methoden, die alle Konstanten verwenden können, auch Methoden zu überschreiben oder spezifische Implementierungen hinzuzufügen.