Sobes.tech
Junior

Kotlin-də data siniflərini necə həyata keçirmək və istifadə etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Məlumat sinifləri məlumatların saxlanması üçün istifadə olunur. Tərtibçi onlar üçün equals(), hashCode(), toString(), copy()componentN() funksiyaları kimi faydalı metodları avtomatik olaraq yaradır.

İcra: data prefiksi ilə sinifin elan edilməsi.

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

İstifadə:

Nümunə yaratmaq:

val user = User("Alice", 30)

Xüsusiyyətlərə giriş:

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

Yaradılmış metodlardan istifadə:

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

başqaUser = User("Alice", 30)
println(user == anotherUser) // true (equals() avtomatik yaradılır)

köhnəUser = user.copy(age = 31) // User(name=Alice, age=31)

istifadəçiAdı, istifadəçiYaşı = user // Destrukturlaşdırma
println("Ad: $istifadəçiAdı, Yaş: $istifadəçiYaşı") // Ad: Alice, Yaş: 30

Xüsusiyyətlər:

  • Bütün əsas konstruktor parametrləri val və ya var olmalıdır.
  • Məlumat sinifləri abstract, open, sealed və ya inner ola bilməz.
  • Sinifin bədənindəki xüsusiyyətlər metodların (equals, hashCode, copy, componentN()) yaradılmasında iştirak etmir.
data class Person(val name: String) {
    var height: Int = 0 // `equals`, `hashCode`, `copy`, `componentN()`-ə daxil deyil
}

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