Sobes.tech
Junior

Jakie zmienne mogą być używane w klasie danych (data class)?

sobes.tech AI

Odpowiedź od AI

W data class mogą być używane:

  • val (właściwość tylko do odczytu): Właściwość jest inicjowana podczas tworzenia obiektu i nie może być później zmieniona. Jest częścią automatycznie generowanych metod (equals(), hashCode(), toString(), copy).
  • var (właściwość zmienna): Właściwość może być zmieniona po utworzeniu obiektu. Również jest częścią generowanych metod.
  • Właściwości zadeklarowane w ciele klasy: Te właściwości nie są częścią głównych właściwości data class i nie uczestniczą w generowaniu standardowych metod.

Przykład:

data class User(
    val id: Int, // tylko do odczytu, część głównych właściwości
    var name: String, // zmienna, część głównych właściwości
    val creationTime: Long = System.currentTimeMillis() // tylko do odczytu, z domyślną wartością, część głównych właściwości
) {
    val isAdmin: Boolean = false // tylko do odczytu, nie jest częścią głównych właściwości, nie jest uwzględniany w equals/hashCode/toString
}