У овом чланку ћете научити да користите гетере и сетере у Котлину уз помоћ примера.
Пре него што научите о гетерима и постављачу, обавезно проверите класу и предмете Котлин.
У програмирању се гетери користе за добијање вредности својства. Слично томе, постављачи се користе за подешавање вредности својства.
У Котлину су гетери и постављачи опционални и аутоматски се генеришу ако их не креирате у свом програму.
Како гетери и сетери раде?
Следећи код у Котлину
класа Особа (име вар: Стринг = "дефаултВалуе")
је еквивалентно са
класа Особа (име вар: Стринг = "дефаултВалуе" // геттер гет () = фиелд // сеттер сет (валуе) (фиелд = валуе))
Када инстанцирате објект Person
класе и иницијализујете својство наме, он се преноси вредности параметра сеттерс и поставља поље на валуе.
вал п = Особа () п.наме = "јацк"
Сада, када приступите својству имена објекта, добићете поље због кода get() = field
.
принтлн ("$ (п.наме)")
Ево радног примера:
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
Овде својство ацтуалАге ради како се очекивало.
Међутим, постоји додатна логика постављача да модификују вредност својства старости.