дата-класс автоматически генерирует кучу шаблонного кода по полям констуктора. Скобочки и есть конструктор. Главный конструктор.
Фишка в том, что объявление класса похоже на объявление функции.
class A(b: String) {
val c = b * b
}
Вот у нас класс с одним полем c.
Если значение передаётся напрямую, можно объявить поле прямо в конструкторе.
class A(val b: String)
Вот у нас класс с полем b, значение которого берётся напрямую из конструктора. При создании объекта new не нужен.
val a = A("hello")
println(a.b) // hello
data class используется для классов данных, в которых только поля и почти нет или вообще нет логики. Но ее можно сделать.
Феникс поправит если ошибся.
Можно добавить дополнительные конструкторы.
Еще при наследовании нужно связывать конструктор наследника с конструктором родителя. Короче, ООП зашибись какой навороченный
Ну, значит я правильно понял пример. Вот и спросил, частая ли это конструкция, где не нужна никакая логика, но нужен вот класс