Sobes.tech
Junior — Middle

Milyen jellemzői és korlátai vannak az adatosztályoknak Kotlinban?

sobes.tech MI

Válasz az MI-től

A Kotlin adat osztályok (data class) adat tárolására szolgálnak, és automatikusan hasznos metódusokat biztosítanak: equals(), hashCode(), toString(), copy() és destrukturálási funkciók.

Jellemzők és korlátozások:

  • Az osztálynak legalább egy paramétere kell, hogy legyen a konstruktorban.
  • A primary constructor-ban deklarált összes paraméter automatikusan tulajdonsággá válik.
  • Az osztály nem lehet absztrakt, nyitott, belső vagy más osztályoktól öröklődő (de interfészeket megvalósíthat).
  • A fordító csak a konstruktorban deklarált tulajdonságokra generál metódusokat, nem további tulajdonságokra.
  • A generált metódusokat felülírhatja, ha meg akarja változtatni a viselkedést.

Példa:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // új objektumot hoz létre a módosított életkornál
println(user1) // User(name=Alice, age=30)