Lädt...

Enums in Java

Liste eine feste Menge von Namen mit enum, damit das Programm nur aus dieser Liste waehlt. Schreibe enum Level mit LOW, MEDIUM und HIGH. In Yard.java weise Level mark = Level.MEDIUM; zu und drucke mark. Kompiliere mit javac Yard.java und starte java Yard. Der Bildschirm soll MEDIUM zeigen. Eine zweite Demo laeuft mit switch auf demselben mark und druckt medium. Lass abstract-Klassen fuer die naechste Seite — diese Lektion ist eine kurze Liste fester Namen und wie du einen davon druckst oder darauf verzweigst.

Drucke einen enum-Namen

Die Interfaces-Seite fuellte leere Methodenversprechen mit implements. Diese Seite listet stattdessen Konstanten. Oeffne Yard.java. Halte den oeffentlichen Klassennamen Yard. Loesche uebrige Signal/implements-Demos, wenn sie die enum-Geschichte begraben, uebrige Truck-horn-Dateien, Pfaddemos und Tastatur-Scanner. Das Programm darf nicht auf Tippen warten. Du brauchst keine Importzeile.
Deklariere das enum oberhalb der oeffentlichen Klasse:
enum Level {
LOW,
MEDIUM,
HIGH
}
Trenne die Namen mit Kommas. Halte sie in dieser Anfaengerform grossgeschrieben. Der letzte Name braucht fuer diese Lehrdatei kein abschliessendes Komma.
In Yard.main waehlst du einen Namen und druckst ihn:
Level mark = Level.MEDIUM;
System.out.println(mark);
Du schreibst nicht new Level(). Du schreibst den Typnamen, einen Punkt und die Konstante: Level.MEDIUM.

Yard print Level.MEDIUM

java
enum Level {
    LOW,
    MEDIUM,
    HIGH
}

public class Yard {
    public static void main(String[] args) {
        Level mark = Level.MEDIUM;
        System.out.println(mark);
    }
}

Aus dem Ordner, der Yard.java haelt, starte javac Yard.java. Wenn Klammern, geschweifte Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann starte java Yard — nicht java Yard.java. Lass die .java-Endung vom Startbefehl weg. Halte eine oeffentliche Klasse in der Datei, damit der Name Yard trifft. Das enum Level bleibt in dieser Anfaengerform ohne public, wenn es neben Yard in derselben Datei sitzt.
Der Bildschirm zeigt MEDIUM. Geh den Lauf einmal durch. Java startet bei Yard.main. Die Variable mark haelt die Konstante Level.MEDIUM. Druck von mark schreibt den Namen dieser Konstante. Die anderen Namen LOW und HIGH bleiben am Typ verfuegbar, aber diese Demo druckt nur den, den du zugewiesen hast.
Lies die Zuweisungszeile noch einmal: der Typ ist Level, der Wert ist Level.MEDIUM. Beide Seiten gehoeren zum selben enum. Du baust keinen freien Textstring; du waehlst einen gelisteten Namen. Behalte diese Gewohnheit, wenn du spaeter mark in einem privaten Versuch auf LOW oder HIGH aenderst — nur Namen aus der enum-Liste sind legal.
Wenn du noch honk aus einer Interface-Datei siehst, wechsle zur enum-Lehrdatei und starte java Yard erneut. Wenn javac ueber eine fehlende Konstante klagt, pruefe Schreibweise und Grossschreibung von MEDIUM. Wenn du am Aufrufort einen vierten Namen erfindest, ohne ihn im enum zu listen, lehnt javac ab — die Liste im enum ist die erlaubte Menge.
Sag die Regel laut, waehrend du den Bildschirm siehst: enum listet die Namen, Code waehlt einen mit Punkt, Druck zeigt diesen Namen. Erfinde auf dieser Seite keine abstract-Klasse. Abstract-Klassen warten auf die naechste Lektion.

Verzweige auf dem enum mit switch

Ein zweites Programm behält dieselbe Level-Liste. main weist weiterhin Level.MEDIUM zu. Ein switch auf mark druckt ein kleingeschriebenes Wort fuer den gewaehlten Fall.

Yard switch on Level.MEDIUM

java
enum Level {
    LOW,
    MEDIUM,
    HIGH
}

public class Yard {
    public static void main(String[] args) {
        Level mark = Level.MEDIUM;
        switch (mark) {
            case LOW:
                System.out.println("low");
                break;
            case MEDIUM:
                System.out.println("medium");
                break;
            case HIGH:
                System.out.println("high");
                break;
        }
    }
}

Kompiliere mit javac Yard.java, dann starte java Yard. Der Bildschirm zeigt medium. Der switch betrat den MEDIUM-Fall, weil mark Level.MEDIUM hielt. Das break stoppt diesen Fall, damit spaetere Faelle nicht laufen. Aendere in einem spaeteren Versuch nur die zugewiesene Konstante, wenn du low oder high sehen willst — halte die enum-Liste gleich.
In jedem case schreibst du den nackten Konstantennamen: case MEDIUM:, nicht case Level.MEDIUM:. Der switch kennt den Typ schon aus switch (mark). Halte in dieser Anfaengerform nach jedem Druck ein break, damit die Lehr-Ausgabe eine klare Zeile bleibt. Geh die drei Faelle einmal mit den Augen durch: LOW mappt auf low, MEDIUM auf medium, HIGH auf high. Bei einer Zuweisung laeuft nur einer dieser Drucke.
Wenn uebrige Interface-Demos noch in der Naehe liegen, behalte sie als Geschichte. Fuer diese Lektion starte die enum-Lehrdatei, damit der Bildschirm MEDIUM oder medium zeigt, nicht honk. Wenn javac ueber doppelte oeffentliche Typen klagt, hast du noch mehr als einen public-Typ in der Datei — halte nur Yard oeffentlich.

Die drei Level-Namen

📊 Level enum names

Name Role on this page
LOW listed constant; switch can print low
MEDIUM assigned and printed in both demos
HIGH listed constant; switch can print high
Die Tabelle ist die kurze Karte dieser Seite. Das enum haelt alle drei Namen. Die erste Demo druckt den mittleren Namen als MEDIUM. Die zweite Demo mappt dieselbe Wahl auf das kleingeschriebene Wort medium. Halte die Liste kurz und fest; behandle mark auf dieser Seite nicht als frei getippten String.

Vergleich mit Interfaces

Auf der Interfaces-Seite versprach Signal leere Methoden und Truck implements Signal fuellte sie. Auf dieser Seite listet enum Level Namen und Yard waehlt einen. Du kompilierst weiterhin Yard.java und startest java Yard. Die neuen Tokens sind enum, die grossgeschriebene Konstantenliste, Level.MEDIUM und — in der zweiten Demo — switch-Faelle auf diesen Namen.
Wenn eine uebrige implements Signal-Datei noch offen ist, siehst du Methodenkoerper und honk. Wechsle zur enum-Datei, damit oben enum Level steht und main eine Konstante zuweist. Halte Abstract-Klassen-Demos von dieser Seite fern. Halte Tastatureingabe von dieser Seite fern.

Vor abstract-Klassen

Du kannst enum Level mit LOW, MEDIUM und HIGH deklarieren, Level.MEDIUM zuweisen und MEDIUM auf dem Bildschirm sehen. Du kannst auf diesem mark switchen und medium sehen. Kompiliere Yard.java und starte java Yard fuer jede behaltene Demo nacheinander. Das Programm waehlte aus einer festen Liste. Die naechste Seite sind abstract-Klassen, wo ein Elterntyp eine Methode ohne vollen Koerper lassen kann, damit Kinder sie fertigstellen.
Halte die Druck-Demo fuer eine klare Konstante auf dem Bildschirm. Halte die switch-Demo fuer eine klare Verzweigung auf dieser Konstante. Halte abstract-Dateien von dieser Seite fern. Diese drei Gewohnheiten sind der Checkpoint vor dem Weitergehen. Wenn MEDIUM aus einem direkten Druck kommt — und wenn medium aus dem switch kommt — haben enums ihre Arbeit fuer diese Lektion getan und du bist bereit fuer das naechste Thema ueber abstract-Klassen.
Ein letzter Durchgang durch den Ordner: ein oeffentliches Yard, ein enum Level mit drei Namen, kein Tastaturwarten, keine erzwungene abstract-Klasse. Starte javac Yard.java und java Yard noch einmal auf der Demo, die du offen haeltst. Wenn der Bildschirm noch zur mittleren Tabellenzeile passt, ist die enum-Liste solide und der Kurs kann auf der naechsten Seite zu abstract-Klassen gehen.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
5
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt