Enum-egenskaper og -metoder
Legg til atferd
Enum-egenskaper og -metoder er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.
Enum-er kan inneholde data
Enum-konstanter kan ha egenskaper. Deklarer en konstruktør for enum-klassen, og oppgi verdier når du lister opp hver konstant.
enum class Coin(val cents: Int) {
PENNY(1), NICKEL(5), DIME(10)
}
fun main() {
println(Coin.DIME.cents)
}Konstruktørparametere
Verdiene i parentes etter hver konstant er argumenter til enum-konstruktøren. De blir skrivebeskyttede egenskaper på den aktuelle konstanten.
enum class Planet(val gravity: Double) {
EARTH(9.8), MOON(1.6)
}
fun main() {
println(Planet.MOON.gravity)
}Flere egenskaper
En enum kan deklarere flere egenskaper samtidig.
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}")
}Legge til metoder
Du kan deklarere vanlige funksjoner i enum-kroppen. Alle konstantene deler dem.
enum class Temp(val celsius: Int) {
COLD(5), WARM(25);
fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}
fun main() {
println(Temp.WARM.toFahrenheit())
}Semikolonregelen
Når en enum har medlemmer i tillegg til konstantene, for eksempel metoder eller egenskaper, må du sette et semikolon etter den siste konstanten.
enum class Op {
ADD, SUB;
fun describe() = "Operation: $name"
}
fun main() {
println(Op.ADD.describe())
}Abstrakte metoder per konstant
Enum-er kan deklarere abstrakte metoder som hver konstant overstyrer, slik at hver konstant får sin egen oppførsel.
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))
}Beregnede egenskaper
Egenskapenes gettere kan beregne verdier basert på dataene til konstanten.
enum class Account(val balance: Int) {
SAVINGS(1000), CHECKING(50);
val isRich: Boolean get() = balance > 500
}
fun main() {
println(Account.SAVINGS.isRich)
}Kombinere data og oppførsel
Egenskaper og metoder lar en enum modellere et rikt, lukket domene.
enum class Shape(val sides: Int) {
TRIANGLE(3), SQUARE(4);
fun describe() = "$name has $sides sides"
}
fun main() {
println(Shape.SQUARE.describe())
}Bruke egenskaper i logikk
Egenskapene til konstanter er nyttige i beregninger og betingelser.
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))
}Standardverdier for egenskaper
Enum-konstruktører støtter standardverdier for parametere, akkurat som alle andre konstruktører.
enum class Role(val canEdit: Boolean = false) {
VIEWER, EDITOR(true)
}
fun main() {
println(Role.VIEWER.canEdit)
println(Role.EDITOR.canEdit)
}En komplett modell
Her modellerer en enum HTTP-statuser med både data og oppførsel.
enum class Http(val code: Int) {
OK(200), NOT_FOUND(404);
fun isError() = code >= 400
}
fun main() {
println(Http.NOT_FOUND.isError())
}Kort kontrollspørsmål
Test forståelsen din av enum-egenskaper og -metoder.
Oppsummering
Du har lært at enum-er kan inneholde oppførsel:
- Legg til en konstruktør for å gi konstantene egenskaper.
- Deklarer delte metoder (bruk et semikolon etter konstantene).
- Abstrakte metoder lar hver konstant definere sin egen oppførsel.
- Beregnede egenskaper og egenskaper med standardverdier fungerer som vanlig.
enum class Coin(val cents: Int) {
PENNY(1), DIME(10);
fun double() = cents * 2
}
fun main() {
println(Coin.DIME.double())
}Lær deg Kotlin med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 51
- Leksjoner
- 203
Ofte stilte spørsmål
Er leksjonen «Enum-egenskaper og -metoder» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «Enum-egenskaper og -metoder», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Enum-egenskaper og -metoder»?
Legg til atferd Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Kotlin Academy?
Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Enum-egenskaper og -metoder»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?
Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Definere enum-typer
- Enum-egenskaper og -metoder
- Enum-typer med when
- Enum-verdier og ordinaler