0Pricing
Kotlin Academy · Lektion

Enum-Eigenschaften und -Methoden

Fügen Sie Verhalten hinzu

Enum-Eigenschaften und -Methoden ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Enums können Daten enthalten

Enum-Konstanten können Eigenschaften enthalten. Deklarieren Sie einen Konstruktor für die Enum-Klasse und übergeben Sie beim Auflisten der einzelnen Konstanten die entsprechenden Werte.

enum class Coin(val cents: Int) {
    PENNY(1), NICKEL(5), DIME(10)
}

fun main() {
    println(Coin.DIME.cents)
}

Konstruktorparameter

Die Werte in Klammern nach jeder Konstante sind Argumente für den Enum-Konstruktor. Sie werden zu schreibgeschützten Eigenschaften dieser Konstante.

enum class Planet(val gravity: Double) {
    EARTH(9.8), MOON(1.6)
}

fun main() {
    println(Planet.MOON.gravity)
}

Mehrere Eigenschaften

Ein Enum kann mehrere Eigenschaften gleichzeitig deklarieren.

enum class Fruit(val color: String, val calories: Int) {
    APPLE("red", 95),
    BANANA("yellow", 105)
}

fun main() {
    val f = Fruit.BANANA
    println("${f.color} ${f.calories}")
}

Methoden hinzufügen

Sie können im Rumpf des Enums reguläre Funktionen deklarieren. Jede Konstante verwendet diese gemeinsam.

enum class Temp(val celsius: Int) {
    COLD(5), WARM(25);

    fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}

fun main() {
    println(Temp.WARM.toFahrenheit())
}

Die Semikolonregel

Wenn ein Enum neben den Konstanten weitere Member wie Methoden oder Eigenschaften enthält, müssen Sie nach der letzten Konstante ein Semikolon setzen.

enum class Op {
    ADD, SUB;

    fun describe() = "Operation: $name"
}

fun main() {
    println(Op.ADD.describe())
}

Abstrakte Methoden pro Konstante

Enums können abstrakte Methoden deklarieren, die von jeder Konstante überschrieben werden. So erhält jede Konstante ihr eigenes Verhalten.

enum class Math {
    PLUS { override fun apply(a: Int, b: Int) = a + b },
    TIMES { override fun apply(a: Int, b: Int) = a * b };

    abstract fun apply(a: Int, b: Int): Int
}

fun main() {
    println(Math.TIMES.apply(3, 4))
}

Berechnete Eigenschaften

Getter von Eigenschaften können Werte auf Grundlage der Daten der jeweiligen Konstante berechnen.

enum class Account(val balance: Int) {
    SAVINGS(1000), CHECKING(50);

    val isRich: Boolean get() = balance > 500
}

fun main() {
    println(Account.SAVINGS.isRich)
}

Daten und Verhalten kombinieren

Mit Eigenschaften und Methoden kann ein Enum eine umfangreiche, abgeschlossene Domäne modellieren.

enum class Shape(val sides: Int) {
    TRIANGLE(3), SQUARE(4);

    fun describe() = "$name has $sides sides"
}

fun main() {
    println(Shape.SQUARE.describe())
}

Eigenschaften in der Logik verwenden

Eigenschaften von Konstanten sind bei Berechnungen und Bedingungen praktisch.

enum class Tier(val discount: Int) {
    BRONZE(5), GOLD(20)
}

fun price(base: Int, tier: Tier) = base - base * tier.discount / 100

fun main() {
    println(price(100, Tier.GOLD))
}

Standardwerte für Eigenschaften

Enum-Konstruktoren unterstützen wie jeder Konstruktor Standardwerte für Parameter.

enum class Role(val canEdit: Boolean = false) {
    VIEWER, EDITOR(true)
}

fun main() {
    println(Role.VIEWER.canEdit)
    println(Role.EDITOR.canEdit)
}

Ein vollständiges Modell

Hier modelliert ein Enum HTTP-Statuscodes mit Daten und Verhalten.

enum class Http(val code: Int) {
    OK(200), NOT_FOUND(404);

    fun isError() = code >= 400
}

fun main() {
    println(Http.NOT_FOUND.isError())
}

Kurze Überprüfung

Testen Sie Ihr Verständnis von Eigenschaften und Methoden in Enums.

Zusammenfassung

Sie haben gelernt, dass Enums Verhalten enthalten können:

  • Fügen Sie einen Konstruktor hinzu, um Konstanten mit Eigenschaften auszustatten.
  • Deklarieren Sie gemeinsame Methoden. Verwenden Sie nach den Konstanten ein Semikolon.
  • Abstrakte Methoden ermöglichen es jeder Konstante, ihr eigenes Verhalten zu definieren.
  • Berechnete Eigenschaften und Eigenschaften mit Standardwerten funktionieren wie gewohnt.
enum class Coin(val cents: Int) {
    PENNY(1), DIME(10);
    fun double() = cents * 2
}

fun main() {
    println(Coin.DIME.double())
}

Häufig gestellte Fragen

Ist die Lektion „Enum-Eigenschaften und -Methoden“ kostenlos?

Ja — der vollständige Text von „Enum-Eigenschaften und -Methoden“ 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 „Enum-Eigenschaften und -Methoden“?

Fügen Sie Verhalten hinzu 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 2 von 4.

Wie lange dauert die Lektion „Enum-Eigenschaften und -Methoden“?

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