Sobes.tech
Junior

Маалымат класында (data class) кайсы өзгөрмөлөр колдонулушу мүмкүн?

sobes.tech AI

AIден жооп

Data class ичинде колдонулушу мүмкүн:

  • val (тек окуу үчүн мүнөздөмө): Мүнөздөмө объект түзүлгөндө башталат жана кийинчерээк өзгөртүлбөйт. Ал автоматтык түрдө түзүлгөн методдордун (equals(), hashCode(), toString(), copy()) бир бөлүгү болуп саналат.
  • var (өзгөрмө мүнөздөмө): Мүнөздөмө объект түзүлгөндөн кийин өзгөртүлүшү мүмкүн. Ал да автоматтык түрдө түзүлгөн методдордун бир бөлүгү болуп саналат.
  • Класс денесинде жарыяланган мүнөздөмөлөр: Бул мүнөздөмөлөр data classтын негизги мүнөздөмөлөрүнүн бөлүгү эмес жана стандарттык методдорду түзүүдө катышпайт.

Мисал:

data class User(
    val id: Int, // гана окуу үчүн, негизги мүнөздөмөлөрдүн бөлүгү
    var name: String, // өзгөрмө, негизги мүнөздөмөлөрдүн бөлүгү
    val creationTime: Long = System.currentTimeMillis() // гана окуу үчүн, алдын ала белгиленген мааниси менен, негизги мүнөздөмөлөрдүн бөлүгү
) {
    val isAdmin: Boolean = false // гана окуу үчүн, негизги мүнөздөмөлөрдүн бөлүгү эмес, `equals()`/`hashCode()`/`toString()`-га кирбейт
}