Ответ
При объявлении data class автоматически генерируются следующие методы:
equals()иhashCode()- для сравнения объектов по их свойствамtoString()- в формате "ClassName(prop1=value1, prop2=value2...)"componentN()функции (оператор декомпозиции) для каждого свойстваcopy()- для создания копии объекта с возможностью изменять отдельные свойства
Пример:
data class User(val name: String, val age: Int)
// Автоматически получаем:
// equals(), hashCode(), toString(),
// component1() = name, component2() = age
// copy(name="newName", age=30)
Примечание: методы equals(), hashCode() и toString() учитывают только свойства, объявленные в первичном конструкторе.