Sobes.tech
Junior

Ma'lumotlar sinfida (data class) qanday o'zgaruvchilar ishlatilishi mumkin?

sobes.tech AI

AIdan javob

Data class ichida quyidagilar ishlatilishi mumkin:

  • val (faqat o'qish uchun xususiyat): Xususiyat obyekt yaratilganda boshlanadi va keyinchalik o'zgartirilmaydi. U avtomatik ravishda yaratiladigan metodlarning (equals(), hashCode(), toString(), copy()) bir qismidir.
  • var (o'zgaruvchan xususiyat): Xususiyat obyekt yaratilgandan so'ng o'zgartirilishi mumkin. Shuningdek, u avtomatik ravishda yaratiladigan metodlarning bir qismidir.
  • Klassning tanasida e'lon qilingan xususiyatlar: Bu xususiyatlar data class ning asosiy xususiyatlari qismida emas va standart metodlarning yaratilishida ishtirok etmaydi.

Misol:

data class User(
    val id: Int, // faqat o'qish uchun, asosiy xususiyatlar qismida
    var name: String, // o'zgaruvchan, asosiy xususiyatlar qismida
    val creationTime: Long = System.currentTimeMillis() // faqat o'qish uchun, standart qiymat bilan, asosiy xususiyatlar qismida
) {
    val isAdmin: Boolean = false // faqat o'qish uchun, asosiy xususiyatlar qismida emas, equals/hashCode/toString ga kiritilmaydi
}