Sobes.tech
Junior

Hogyan valósítsuk meg és használjuk az adat osztályokat Kotlinben?

sobes.tech MI

Válasz az MI-től

Az adat osztályokat adatok tárolására használják. A fordító automatikusan generál nekik hasznos metódusokat, mint például az equals(), hashCode(), toString(), copy() és a componentN() függvényeket.

Implementáció: az osztály deklarálása a data előtaggal.

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

Használat:

Példány létrehozása:

val user = User("Alice", 30)

A tulajdonságok elérése:

val name = user.name // Alice
val age = user.age   // 30

A generált metódusok használata:

println(user.toString()) // User(name=Alice, age=30)

másikUser = User("Alice", 30)
println(user == anotherUser) // true (az `equals()` automatikusan generálva)

idősebbUser = user.copy(age = 31) // User(name=Alice, age=31)

felhasználóNév, felhasználóKor = user // Destrukturálás
println("Név: $felhasználóNév, Kor: $felhasználóKor") // Név: Alice, Kor: 30

Jellemzők:

  • Minden fő konstruktor paraméter val vagy var kell, hogy legyen.
  • Az adat osztályok nem lehetnek abstract, open, sealed vagy inner.
  • Az osztály törzsében lévő tulajdonságok nem vesznek részt a metódusok (equals, hashCode, copy, componentN()) generálásában.
data class Person(val name: String) {
    var height: Int = 0 // Nem vesz részt az `equals`, `hashCode`, `copy`, `componentN()`-ben
}

val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true