Junior
Cum se implementează și se utilizează clasele de date în Kotlin?
sobes.tech AI
Răspuns de la AI
Clasele de date sunt utilizate pentru stocarea datelor. Compilatorul generează automat metode utile pentru acestea, cum ar fi equals(), hashCode(), toString(), copy() și funcțiile componentN().
Implementare: declararea clasei cu prefixul data.
data class User(val name: String, val age: Int)
Utilizare:
Crearea unei instanțe:
val user = User("Alice", 30)
Accesarea proprietăților:
val name = user.name // Alice
val age = user.age // 30
Utilizarea metodelor generate:
println(user.toString()) // User(name=Alice, age=30)
altUser = User("Alice", 30)
println(user == altUser) // true (equals() generat)
altUser = user.copy(age = 31) // User(name=Alice, age=31)
val (userName, userAge) = user // Destructurare
println("Nume: $userName, Vârstă: $userAge") // Nume: Alice, Vârstă: 30
Caracteristici:
- Toți parametrii constructorului principal trebuie să fie
valsauvar. - Clasele de date nu pot fi
abstract,open,sealedsauinner. - Proprietățile din corpul clasei nu participă la generarea metodelor (
equals,hashCode,copy,componentN).
data class Person(val name: String) {
var height: Int = 0 // Nu participă la equals/hashCode/copy/componentN
}
val p1 = Person("Bob")
p1.height = 180
val p2 = Person("Bob")
p2.height = 190
println(p1 == p2) // true