Kotlin: В чëм разница в "class User(private val name : String)" и class User(user: String)"

В чëм разница между class User(private val name : String) и class User(user: String) в Kotlin?

Много искал, но нигде не пишут об этом, обьясните разницу, и если можно, то пример.


Ответы (2 шт):

Автор решения: Alex Karpou

Сам недавно начал изучать программирование, поэтому могу дать не совсем точный ответ.

В первом случае (class User(private val name : String)) в этом классе ты можешь использовать переменную name где угодно, как при объявлении и инициализации других переменных, так и в функциях.

Во втором случае (class User(user: String)) данная переменная может быть использована только при объявлении и инициализации переменных класса.

→ Ссылка
Автор решения: Eugene Krivenja

Во втором случае это сокращенная форма обьявления первичного конструктора и user: String это всего лишь его параметр и может быть использован только в момент создания обьекта. Аналогичная полная форма

class User constructor(user: String)

В первом случае опять же все тот же первичный конструктор, только private val name: String уже является обьявлением private property, которое будет являться частью созданного конструктором обьекта.

Об этом пишут в офф. документации
https://kotlinlang.org/docs/classes.html#constructors

→ Ссылка