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)