Kotlin Getters and Setters (с пример)

В тази статия ще се научите да използвате getters и setters в Kotlin с помощта на пример.

Преди да научите за getters и setter, не забравяйте да проверите клас и обекти на Kotlin.

При програмирането се използват гетери за получаване на стойност на свойството. По същия начин сеттерите се използват за задаване на стойност на свойството.

В Kotlin, getters и setters не са задължителни и се генерират автоматично, ако не ги създадете във вашата програма.

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

Следният код в Kotlin

 клас Person (име на var: String = "defaultValue")

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

 клас Person (име на var: String = "defaultValue" // getter get () = field // setter set (value) (field = value))

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

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

Сега, когато осъществите достъп до свойството на името на обекта, ще получите поле поради кода get() = field.

 println ("$ (p.name)")

Ето един работен пример:

 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 ) )

Когато стартирате програмата, изходът ще бъде:

 крик 

Това е начина, по който по подразбиране работят гетери и сетери. Можете обаче да промените стойността на свойството (да промените стойността), използвайки getters и setters.

Пример: Промяна на стойността на собствеността

 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 работи както се очаква.

Съществува обаче допълнителна логика на настройващите, за да модифицират стойността на възрастовото свойство.

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