Sobes.tech
Junior

Millised muutujad võivad olla andmeklassis (data class) kasutusel?

sobes.tech AI

Vastus AI-lt

Andmeklassis võivad olla kasutusel:

  • val (ainult lugemisomadus): Omadus algatatakse objekti loomisel ja neid ei saa hiljem muuta. See on osa automaatselt genereeritud meetoditest (equals(), hashCode(), toString(), copy).
  • var (muudetav omadus): Omadus võib olla muudetud pärast objekti loomist. Samuti on see osa genereeritud meetoditest.
  • Klassi keha deklareeritud omadused: Need omadused ei kuulu andmeklassi põhijoonte hulka ega osale standardmeetodite genereerimisel.

Näide:

data class User(
    val id: Int, // ainult lugemiseks, põhijoonte osa
    var name: String, // muudetav, põhijoonte osa
    val creationTime: Long = System.currentTimeMillis() // ainult lugemiseks, vaikimisi väärtusega, põhijoonte osa
) {
    val isAdmin: Boolean = false // ainult lugemiseks, ei kuulu põhijoonte hulka, ei sisaldu `equals()`/`hashCode()`/`toString()`-is
}