Sobes.tech
Junior — Middle

Millised omadused ja piirangud on Kotlinis andmeklassidel?

sobes.tech AI

Vastus AI-lt

Andmeklassid (data class) Kotlinis on mõeldud andmete salvestamiseks ning pakuvad automaatselt kasulikke meetodeid: equals(), hashCode(), toString(), copy() ja destruktureerimisfunktsioone.

Omadused ja piirangud:

  • Klassil peab olema vähemalt üks parameeter konstruktoris.
  • Kõik konstruktoriparameetrid, mis on deklareeritud primary constructor-is, muutuvad automaatselt omadusteks.
  • Klass ei saa olla abstraktne, avatud, sisemine ega pärida teistelt klassidelt (aga võib rakendada liideseid).
  • Kompilaator genereerib meetodid ainult konstruktoris deklareeritud omadustele, mitte täiendavatele omadustele.
  • Kui soovite, saate genereeritud meetodeid üle kirjutada, et muuta käitumist.

Näide:

data class User(val name: String, val age: Int)

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // loob uue objekti muudetud vanusega
println(user1) // User(name=Alice, age=30)