Junior — Middle
Kokios savybės ir apribojimai yra duomenų klasėse Kotlin?
sobes.tech AI
Atsakymas iš AI
Kotlin duomenų klasės (data class) skirtos duomenų saugojimui ir automatiškai teikia naudingus metodus: equals(), hashCode(), toString(), copy() ir destruktūrizacijos funkcijas.
Savybės ir apribojimai:
- Klasė turi turėti bent vieną parametrą konstruktoriuje.
- Visi konstruktoriaus parametrai, deklaruoti
primary constructor, automatiškai tampa savybėmis. - Klasė negali būti abstrakti, atvira, vidinė ar paveldėti iš kitų klasių (bet gali įgyvendinti sąsajas).
- Koduotojas generuoja metodus tik tiems savybėms, kurios deklaruotos konstruktoriuje, ne papildomoms savybėms.
- Jei reikia, galima perrašyti sugeneruotus metodus.
Pavyzdys:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // sukurs naują objektą su pakeistu amžiumi
println(user1) // User(name=Alice, age=30)