Java 1
  • Home
  • Tutorials
    • Hello World
      • Download
      • Installation unter Windows
      • Installation unter Linux
      • Das Hello World Programm
      • Mehr Java
    • Java Konsole
      • Java Konsole Testen
    • Basic Java
      • Java Programme
        • Die Klasse
        • Datentypen
        • Null
        • Casten
        • Operatoren
        • Kontrollstrukturen
        • Arrays
        • Aufgaben
      • Objektorientierte Konzepte
        • Hallo Fenster
        • Objekte einer Klasse
        • Vererbung
        • Interfaces
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
        • Sichtbarkeit
        • Druckdarstellung
        • Gleichheit
        • Klonen
        • Die Class
        • Serialisierung
    • Java Api
      • Dokumentation
      • Strings
      • Wrapper Klassen
      • System und Runtime
      • Math
      • Exceptions
      • IO
      • Sammlungsklassen
      • AWT und Swing
      • Alle Komponenten
      • Applets
      • Threads
      • Jar
      • Classpath
    • JSP und Servlets
      • Meine erste JSP
        • Downloads
        • Installation unter Windows
        • Installation unter Linux
        • Admin und Manager
        • Webapplication
      • JSP
        • Java Code in HTML einbinden
        • Das HTTP Request - Response Modell
        • Request und Response Objekte
        • Auswerten von Formulardaten
        • Aufgaben
      • Beans
        • Die Session
        • Weitere vordefinierte Objekte
        • Java-Beans
        • Beans programmieren
        • Java-Beans in JSP nutzen
        • Aufgaben
      • Servlets
        • Nutzen der Servlets
        • Servlets programmieren
        • Servlets auf dem Server einrichten
        • Servlets mit JSP
        • Servlets includen
        • Aufgaben
      • Webapplikation
        • Filter
        • Initialisierungsparameter
        • Error Pages
        • Passwortgeschützte Verzeichnisse
        • Bibliotheken nutzen
        • Eine Webapplikation deployen
        • Ausblick: Wie geht's weiter?
        • JSP-Tags Syntaxreferenz
        • Aufgaben
  • Code
    • Web
      • Datenbankverbindungen mit Tomcat
      • Texte richtig encoden
      • HTTPS mit Tomcat
      • HTML Encoden mit Javascript
    • Java
      • Print F
      • Ein generischer Poolbuilder
      • Native Bibliotheken
      • Unique Ids
    • Java FX
      • Balls
      • Hearts
      • Planner
    • Java ME
      • The Next Big Thing
    • System
      • Vi Kommandos
  • Sidemap
  • Impressum
  • Hilfe
Home > Tutorials > Basic Java > Alles über Klassen > Enumerations
  • Home
  • Tutorials
    • Hello World
    • Java Konsole
    • Basic Java
      • Java Programme
      • Objektorientierte Konzepte
      • Alles über Klassen
        • Abstrakte Klassen
        • Methoden überschreiben
        • Super
        • Final
        • Innere Klassen
        • Anonyme Klassen
        • Enumerations
      • You're just an object
    • Java Api
    • JSP und Servlets
  • Code
  • Sidemap
  • Impressum
  • Hilfe

Enumerations

Enumerations sind neu in Java 1.5 und werden von den älteren Arbeitsumgebungen möglicherweise nicht korrekt erkannt. Sie dienen dazu, auf zuverlässige Art Gruppen von Konstanten zu definieren. Ein Beispiel:

Nehmen wir an, wir wollten bestimmte Musikstücke den Jahreszeiten zuordnen und wollten daher dieJahreszeiten als Konstanten definieren. Da es keinen Datentyp „Jahreszeit" gibt, kämen grundsätzlich eine Reihe von Datentypen in Frage. Eine naheliegende Lösung wäre vielleicht, die Jahreszeit als Integer-Wert zu behandeln:

final int SPRING=1;
final int SUMMER=2;
final int AUTUMN=3;
final int WINTER=4;

final int SEASONS=new int[] {SPRING, SUMMER, AUTUMN, WINTER};

Das funktioniert erstmal, hat aber eine Reihe von Nachteilen:

  1. Niemand hindert mich daran, hier eine fünfte, sechste oder wievielte Jahreszeit einzufügen. Wir werden eine Menge Code brauchen, um solche Fehler abzufangen. Es gibt beim Kompilieren keine Sicherheit, dass ein Wert zulässig ist.
  2. Wenn ich eine Jahreszeit ausdrucke, sehe ich eine Zahl, das ist wenig aussagekräftig.
  3. Die Zuordnung von Zahlen zu realen Ereignissen kann leicht zu Verwirrung führen. Das gibt es bereits in der Java-Api. Während dem ersten Tag eines Monats irgendwie nachvollziehbar mit 1 beginnt, ist es bei den Monaten im Jahr anders: hier ist der Januar der nullte Monat und der Dezember der elfte, wie es sich für ein Array gehört, das ja mit dem Index "0" beginnt. Ein steter Quell schwer zu findender Fehler.

Mit Java 1. 5 können wir nun eine Enumeration definierten, die einen eigenen Typ erzeugt:

enum Season {SPRING,SUMMER, AUTUMN, WINTER};

Eine Season kann nun genau einen dieser Werte annehmen und keine weiteren. Beim Ausdrucken sehen wir die definierten Werte, also beispielsweise: „SPRING" bei System.out.println(SPRING);

Eine Enumeration kann aber noch mehr. So kann sie auch Daten und Methoden anbieten, die am jeweiligen Objekt aufgerufen werden können.

Enumerations werden leider von der Beanshell noch nicht unterstützt, das Beispiel läuft nicht im Applet.


Insgesamt ein sehr nützlicher neuer Typ.

Aufgabe SwitchEnumeration

Wenden Sie ein switch – case statement auf eine Enumeration an.
Musterlösung: java1.aufg.kap_3.SwitchEnumeration

« Anonyme Klassen
Alles über Klassen
 
Show/Hide Footer Actions

Kommentare:

Sie müssen angemeldet sein um eine Nachricht zu erstellen. Anmelden »
© 2012 Java 1. Alle Rechte vorbehalten.
Anmelden
concrete5 - open source CMS
Theme by Site5 / Mnkras.