Właściwości i metody enumów
Dodawaj zachowanie
Właściwości i metody enumów to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Enumy mogą przechowywać dane
Stałe enum mogą zawierać właściwości. Należy zadeklarować konstruktor klasy enum i przekazać wartości przy wymienianiu poszczególnych stałych.
enum class Coin(val cents: Int) {
PENNY(1), NICKEL(5), DIME(10)
}
fun main() {
println(Coin.DIME.cents)
}Parametry konstruktora
Wartości w nawiasach po każdej stałej są argumentami konstruktora enum. Stają się one właściwościami tylko do odczytu tej stałej.
enum class Planet(val gravity: Double) {
EARTH(9.8), MOON(1.6)
}
fun main() {
println(Planet.MOON.gravity)
}Wiele właściwości
Enum może deklarować kilka właściwości jednocześnie.
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}")
}Dodawanie metod
W treści enum można deklarować zwykłe funkcje. Wszystkie stałe współdzielą te funkcje.
enum class Temp(val celsius: Int) {
COLD(5), WARM(25);
fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}
fun main() {
println(Temp.WARM.toFahrenheit())
}Zasada dotycząca średnika
Jeśli enum ma elementy wykraczające poza stałe, takie jak metody lub właściwości, po ostatniej stałej należy umieścić średnik.
enum class Op {
ADD, SUB;
fun describe() = "Operation: $name"
}
fun main() {
println(Op.ADD.describe())
}Metody abstrakcyjne dla poszczególnych stałych
Enumy mogą deklarować metody abstrakcyjne, które każda stała przesłania, dzięki czemu każda stała ma własne zachowanie.
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))
}Właściwości obliczane
Gettery właściwości mogą obliczać wartości na podstawie danych stałej.
enum class Account(val balance: Int) {
SAVINGS(1000), CHECKING(50);
val isRich: Boolean get() = balance > 500
}
fun main() {
println(Account.SAVINGS.isRich)
}Łączenie danych i zachowania
Właściwości i metody pozwalają enumowi modelować bogatą, zamkniętą dziedzinę.
enum class Shape(val sides: Int) {
TRIANGLE(3), SQUARE(4);
fun describe() = "$name has $sides sides"
}
fun main() {
println(Shape.SQUARE.describe())
}Używanie właściwości w logice
Właściwości stałych są przydatne w obliczeniach i warunkach.
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))
}Domyślne wartości właściwości
Konstruktory enum obsługują domyślne wartości parametrów tak jak każdy konstruktor.
enum class Role(val canEdit: Boolean = false) {
VIEWER, EDITOR(true)
}
fun main() {
println(Role.VIEWER.canEdit)
println(Role.EDITOR.canEdit)
}Kompletny model
W tym przykładzie enum modeluje statusy HTTP, łącząc dane i zachowanie.
enum class Http(val code: Int) {
OK(200), NOT_FOUND(404);
fun isError() = code >= 400
}
fun main() {
println(Http.NOT_FOUND.isError())
}Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat właściwości i metod enumów.
Podsumowanie
Nauczyli się Państwo, że enumy mogą zawierać zachowanie:
- Dodanie konstruktora nadaje stałym właściwości.
- Można deklarować współdzielone metody, używając średnika po stałych.
- Metody abstrakcyjne pozwalają każdej stałej definiować własne zachowanie.
- Właściwości obliczane i właściwości z wartościami domyślnymi działają jak zwykle.
enum class Coin(val cents: Int) {
PENNY(1), DIME(10);
fun double() = cents * 2
}
fun main() {
println(Coin.DIME.double())
}Często zadawane pytania
Czy lekcja „Właściwości i metody enumów” jest bezpłatna?
Tak — pełny tekst „Właściwości i metody enumów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Właściwości i metody enumów”?
Dodawaj zachowanie Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?
Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Właściwości i metody enumów”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?
Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Definiowanie enumów
- Właściwości i metody enumów
- Enumy z when
- Wartości i numery porządkowe enumów