Sobes.tech
Junior — Middle

Dasturlash tilida data class va standart class o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Kotlin (Android) tilida, data class (ma'lumotlar sinfi) — bu ma'lumotlarni saqlash uchun mo'ljallangan maxsus sinf. Oddiy sinfdan asosiy farqi shundaki, kompilyator avtomatik ravishda data class uchun bir nechta foydali metodlarni yaratadi:

  • equals() va hashCode() obyektlarni mazmuni bo'yicha solishtirish uchun,
  • ma'lumotli toString() chiqarish uchun,
  • copy() yordamida o'zgartirilgan maydonlar bilan nusxalar yaratish uchun,
  • destrukturalash uchun (component1(), component2(), va boshqalar).

Oddiy sinf bu metodlarni standart ravishda olmaydi, ular kerak bo'lsa, qo'lda yozilishi kerak.

Data class misoli:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)

Shu sababli, data class ma'lumotlar modellari uchun qulay, chunki ularning soddaligi va obyektlarni to'g'ri solishtirish muhim bo'lgan hollarda foydalaniladi.