Sobes.tech
Junior — Middle

Kādas īpašības un ierobežojumi pastāv Kotlin datu klasēs?

sobes.tech AI

Atbilde no AI

Datu klases (data class) Kotlin ir paredzētas datu glabāšanai un automātiski nodrošina noderīgas metodes: equals(), hashCode(), toString(), copy() un destrukturēšanas funkcijas.

Īpašības un ierobežojumi:

  • Klasei jābūt vismaz vienam parametrā konstruktorā.
  • Visi konstruktorā deklarētie parametri, kas ir primary constructor, automātiski kļūst par īpašībām.
  • Klase nevar būt abstrakta, atvērta, iekšēja vai mantojoša no citām klasēm (bet var realizēt interfeisus).
  • Kompilators ģenerē metodes tikai tiem īpašībām, kas deklarētas konstruktorā, nevis papildu īpašībām.
  • Ja nepieciešams, var pārdefinēt ģenerētās metodes.

Piemērs:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // izveidos jaunu objektu ar mainītu vecumu
println(user1) // User(name=Alice, age=30)