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
valvagyvarkell, hogy legyen. - Az adat osztályok nem lehetnek
abstract,open,sealedvagyinner. - 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