Enum-eigenschappen en -methoden
Voeg gedrag toe
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())
}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
- Enums definiëren
- Enum-eigenschappen en -methoden
- Enums met when
- Enumwaarden en ordinalen