Sobes.tech
Junior — Middle

Какви характеристики и ограничения съществуват при класовете данни в Kotlin?

sobes.tech AI

Отговор от AI

Класовете за данни (data class) в Kotlin са предназначени за съхранение на данни и автоматично предоставят полезни методи: equals(), hashCode(), toString(), copy() и функции за деструктуриране.

Характеристики и ограничения:

  • Класът трябва да има поне един параметър в конструктора.
  • Всички параметри на конструктора, обявени в primary constructor, автоматично стават свойства.
  • Класът не може да бъде абстрактен, отворен, вътрешен или наследен от други класове (но може да реализира интерфейси).
  • Компилаторът генерира методи само за свойствата, обявени в конструктора, а не за допълнителни свойства.
  • Могат да се презаписват генерираните методи, ако е необходимо да се промени поведението.

Пример:

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)