Получатели и сеттеры Kotlin (с примером)

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

Прежде чем вы узнаете о геттерах и сеттерах, обязательно проверьте класс и объекты Kotlin.

В программировании геттеры используются для получения значения свойства. Точно так же сеттеры используются для установки значения свойства.

В Kotlin геттеры и сеттеры являются необязательными и генерируются автоматически, если вы не создаете их в своей программе.

Как работают геттеры и сеттеры?

Следующий код в Котлине

 класс Person (имя переменной: String = "defaultValue")

эквивалентно

 class Person (var name: String = "defaultValue" // getter get () = field // setter set (value) (field = value))

Когда вы создаете экземпляр объекта Personкласса и инициализируете свойство name, оно передается в значение параметра setters и устанавливает для поля значение.

 val p = Person () p.name = "jack"

Теперь, когда вы обращаетесь к свойству name объекта, вы получаете поле из-за кода get() = field.

 println ("$ (имя пользователя)")

Вот рабочий пример:

 fun main(args: Array) ( val p = Person() p.name = "jack" println("$(p.name)") ) class Person ( var name: String = "defaultValue" get() = field set(value) ( field = value ) )

Когда вы запустите программу, вывод будет:

 разъем 

Так работают геттеры и сеттеры по умолчанию. Однако вы можете изменить значение свойства (изменить значение) с помощью геттеров и сеттеров.

Пример: изменение стоимости собственности

 fun main(args: Array) ( val maria = Girl() maria.actualAge = 15 maria.age = 15 println("Maria: actual age = $(maria.actualAge)") println("Maria: pretended age = $(maria.age)") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("Angela: actual age = $(angela.actualAge)") println("Angela: pretended age = $(angela.age)") ) class Girl ( var age: Int = 0 get() = field set(value) ( field = if (value = 18 && value <= 30) value else value-3 ) var actualAge: Int = 0 )

Когда вы запустите программу, вывод будет:

 Мария: фактический возраст = 15 Мария: предполагаемый возраст = 18 Анджела: фактический возраст = 35 Анджела: предполагаемый возраст = 32

Здесь свойство actualAge работает должным образом.

Однако есть дополнительная логика в установщиках для изменения значения свойства age.

Интересные статьи...