Ответ
object используется для создания синглтона — объекта с единственным экземпляром. Он инициализируется лениво при первом обращении.
object Singleton {
val name = "Singleton"
}
data class предназначен для хранения данных и автоматически генерирует equals(), hashCode(), toString(), copy() и componentN() функции.
data class User(val name: String, val age: Int)
Различия:
object— синглтон,data class— обычный класс с данными.data classтребует создания экземпляров (val user = User(...)),objectуже является экземпляром.data classпредоставляет полезные методы для работы с данными.