Sobes.tech
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)