Kotlin Academy · Lektion

Enums definieren

Benannte Mengen von Konstanten

Lektion 1 von 413 Schritte

Enums definieren ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Enum?

Eine enum class definiert eine feste Menge benannter Konstanten. Verwenden Sie sie, wenn ein Wert nur eine von wenigen bekannten Optionen annehmen kann.

  • Jede Konstante ist eine Instanz des Enum-Typs.
  • Der Compiler garantiert, dass keine anderen Werte möglich sind.
enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

fun main() {
    val d = Direction.NORTH
    println(d)
}

Warum nicht einfach Strings verwenden?

Strings ermöglichen Tippfehler und ungültige Werte. Ein Enum macht ungültige Zustände unmöglich: Der Compiler weist alles zurück, was außerhalb der deklarierten Menge liegt.

enum class Status { ACTIVE, INACTIVE }

fun main() {
    val s: Status = Status.ACTIVE
    println("Current: $s")
}

Konstanten deklarieren

Die Konstanten werden zwischen den geschweiften Klammern aufgeführt und durch Kommas getrennt. Konventionell schreibt man sie in UPPER_SNAKE_CASE.

enum class Size {
    SMALL, MEDIUM, LARGE, EXTRA_LARGE
}

fun main() {
    println(Size.EXTRA_LARGE)
}

Jede Konstante ist ein Objekt

Jede Enum-Konstante ist eine Singleton-Instanz des Enum-Typs. Sie greifen immer über den Namen des Enums darauf zu, zum Beispiel mit Color.RED.

enum class Color { RED, GREEN, BLUE }

fun main() {
    val c = Color.GREEN
    println(c == Color.GREEN)
}

Enum-Werte vergleichen

Enum-Konstanten können mit == verglichen werden. Da jede Konstante eine Singleton-Instanz ist, stimmen Gleichheit und Referenzidentität überein.

enum class Light { RED, YELLOW, GREEN }

fun main() {
    val signal = Light.RED
    if (signal == Light.RED) println("Stop")
}

Die Eigenschaft name lesen

Jede Konstante stellt eine integrierte Eigenschaft name bereit: die exakte Zeichenfolge aus ihrer Deklaration.

enum class Planet { MERCURY, VENUS, EARTH }

fun main() {
    val p = Planet.EARTH
    println(p.name)
}

valueOf aus einem String

Die generierte Funktion valueOf() wandelt einen passenden String in die entsprechende Enum-Konstante um. Bei einem nicht passenden String wird eine Exception ausgelöst.

enum class Day { MON, TUE, WED }

fun main() {
    val d = Day.valueOf("TUE")
    println(d)
}

Enums als Parameter verwenden

Enums eignen sich hervorragend als Funktionsparameter: Aufrufende können nur eine der gültigen Konstanten übergeben.

enum class Level { LOW, HIGH }

fun setVolume(level: Level) {
    println("Volume set to $level")
}

fun main() {
    setVolume(Level.HIGH)
}

Enums verbessern die Lesbarkeit

Code mit Direction.NORTH erklärt sich von selbst. Im Vergleich zu magischen Zahlen wie 0 oder 1 ist die Absicht sofort erkennbar.

enum class Gear { PARK, DRIVE, REVERSE }

fun main() {
    val current = Gear.DRIVE
    println("Gear is $current")
}

Ein realistisches Beispiel

Eine kleine Menge von Kartenfarben zu modellieren, ist ein perfekter Anwendungsfall für ein Enum.

enum class Suit { HEARTS, DIAMONDS, CLUBS, SPADES }

fun main() {
    for (suit in Suit.values()) {
        println(suit)
    }
}

Enums mit nur einer Konstante

Auch eine einzige Konstante ist zulässig. Das wird häufig verwendet, um einen garantiert einzigen Wert zu modellieren – ein Singleton für Arme.

enum class AppMode { PRODUCTION }

fun main() {
    println(AppMode.PRODUCTION)
}

Kurze Überprüfung

Testen Sie Ihr Verständnis zum Definieren von Enums.

Zusammenfassung

Sie haben gelernt, Enums zu definieren:

  • enum class deklariert eine feste Menge benannter Konstanten.
  • Jede Konstante ist eine Singleton-Instanz, auf die über den Namen des Enums zugegriffen wird.
  • name und valueOf() ermöglichen die Umwandlung zwischen Konstanten und Strings.
  • Enums verhindern ungültige Werte bereits zur Compile-Zeit.
enum class Direction { NORTH, SOUTH, EAST, WEST }

fun main() {
    println(Direction.valueOf("EAST").name)
}
Kostenlos starten

Lerne Kotlin mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
51
Lektionen
203

Häufig gestellte Fragen

Ist die Lektion „Enums definieren“ kostenlos?

Ja — der vollständige Text von „Enums definieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Enums definieren“?

Benannte Mengen von Konstanten Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Enums definieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Enums definieren
  2. Enum-Eigenschaften und -Methoden
  3. Enums mit when
  4. Enum-Werte und Ordinalzahlen
← Zurück zu Kotlin Academy