Kotlin Academy · Les

Enum-eigenschappen en -methoden

Voeg gedrag toe

Les 2 van 413 stappen

Enum-eigenschappen en -methoden is een gratis Kotlin Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Kotlin Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Kotlin Academy bevat in totaal 4 lessen.

Enumeraties kunnen gegevens bevatten

Enumeratieconstanten kunnen eigenschappen bevatten. Declareer een constructor voor de enumeratieklasse en geef waarden door wanneer je elke constante opsomt.

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

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

Constructorparameters

De waarden tussen haakjes na elke constante zijn argumenten voor de enumeratieconstructor. Ze worden alleen-lezen-eigenschappen van die constante.

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

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

Meerdere eigenschappen

Een enumeratie kan meerdere eigenschappen tegelijk declareren.

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 toevoegen

Je kunt gewone functies in de hoofdtekst van de enumeratie declareren. Elke constante deelt deze functies.

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

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

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

De puntkommaregel

Als een enumeratie naast constanten ook leden heeft, zoals methoden of eigenschappen, moet je een puntkomma na de laatste constante plaatsen.

enum class Op {
    ADD, SUB;

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

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

Abstracte methoden per constante

Enumeraties kunnen abstracte methoden declareren die door elke constante worden overschreven, zodat elke constante zijn eigen gedrag krijgt.

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))
}

Berekende eigenschappen

Eigenschapstoegangsfuncties kunnen waarden berekenen op basis van de gegevens van de constante.

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

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

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

Gegevens en gedrag combineren

Met eigenschappen en methoden kan een enumeratie een rijk, gesloten domein modelleren.

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

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

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

Eigenschappen in logica gebruiken

Eigenschappen van constanten zijn handig in berekeningen en voorwaarden.

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))
}

Standaardwaarden voor eigenschappen

Enumeratieconstructors ondersteunen standaardwaarden voor parameters, net als elke andere constructor.

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

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

Een compleet model

Hier modelleert een enumeratie HTTP-statussen met zowel gegevens als gedrag.

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

    fun isError() = code >= 400
}

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

Korte toets

Toets je begrip van eigenschappen en methoden van enumeraties.

Samenvatting

Je hebt geleerd dat enumeraties gedrag kunnen bevatten:

  • Voeg een constructor toe om constanten eigenschappen te geven.
  • Declareer gedeelde methoden en gebruik een puntkomma na de constanten.
  • Met abstracte methoden kan elke constante zijn eigen gedrag definiëren.
  • Berekende eigenschappen en eigenschappen met standaardwaarden werken zoals gewoonlijk.
enum class Coin(val cents: Int) {
    PENNY(1), DIME(10);
    fun double() = cents * 2
}

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

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
51
Lessen
203

Veelgestelde vragen

Is de les “Enum-eigenschappen en -methoden” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Kotlin Academy, waaronder “Enum-eigenschappen en -methoden”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Kotlin Academy bevat in totaal 4 lessen.

Wat leer ik in “Enum-eigenschappen en -methoden”?

Voeg gedrag toe Je oefent met Kotlin Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Kotlin Academy te beginnen?

Ervaring vooraf is niet nodig. Kotlin Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Enum-eigenschappen en -methoden”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Kotlin Academy?

Ja. Elke les over Kotlin Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Enums definiëren
  2. Enum-eigenschappen en -methoden
  3. Enums met when
  4. Enumwaarden en ordinalen
← Terug naar Kotlin Academy