8
Enums
Sebastian Eidecker edited this page 2019-11-17 13:23:59 +00:00
  • Kann wie Feld in einer Klasse deklariert werden
    • enum A {HALLO, WELT}
    • Semikolon am Ende der Deklaration ist optional!
    • Kann nicht in einer Methode deklariert werden.
  • Muss keine Werte enthalten (was natürlich wenig sinnvoll ist)
  • Enums werden ähnlich wie Klassen deklariert und unterliegen denselben Sichtbarkeitsregeln
  • Enums auf root-Ebene dürfen nicht static, final, abstract, protected oder private sein.
  • In Klassen definierte sind implizit static, dürfen Sichtbarkeit haben
  • Schlüsselwort enum, statt class (muss nach Sichtbarkeits-Modifikatoren stehen, wie üblich)
  • Konstruktoren können nie direkt aufgerufen werden.
  • MyEnum.values() liefert Array der Werte (Typ des Enums!)

Aufbau

  • Liste der Konstanten immer zuerst
  • Wenn keine weiteren Anweisungen folgen ist das Semikoloon optional, sonst Pflicht
  • Ggf. Felder, Konstuktoren und Methoden danach
  • Konstruktor implizit private, darf nicht public oder protected sein!
  • Konstanten können Parameter enthalten. Dies sind Konstruktoraufrufe. (Da die Konstanten immer zuerst kommen können sie auch keine final-Felder verwenden)