Kotlin Getters in Setters (z zgledom)

V tem članku se boste s pomočjo primera naučili uporabljati getterje in setterje v Kotlinu.

Preden se naučite o getterjih in setterju, preverite razred in predmete Kotlin.

Pri programiranju se geterji uporabljajo za pridobivanje vrednosti lastnosti. Podobno se nastavitelji uporabljajo za nastavitev vrednosti lastnosti.

V Kotlinu so pridobitelji in nastavitelji neobvezni in se samodejno ustvarijo, če jih ne ustvarite v svojem programu.

Kako delujejo geterji in monterji?

Naslednja koda v Kotlinu

 razred Oseba (ime var: String = "defaultValue")

je enakovredno

 razred Oseba (ime var: String = "defaultValue" // getter get () = field // setter set (value) (field = value))

Ko ustvarite primerek predmeta Personrazreda in inicializirate lastnost imena, se ta posreduje vrednosti parametra nastavitve in polje nastavi na vrednost.

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

Zdaj, ko dostopate do lastnosti imena predmeta, boste zaradi kode dobili polje get() = field.

 println ("$ (p.name)")

Tu je delovni primer:

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

Ko zaženete program, bo rezultat:

 priključek 

Tako privzeto delujejo getterji in setterji. Vendar lahko vrednost lastnosti spremenite (spremenite vrednost) z uporabo getterjev in setterjev.

Primer: Spreminjanje vrednosti lastnosti

 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 )

Ko zaženete program, bo rezultat:

 Maria: dejanska starost = 15 Maria: pretvarjena starost = 18 Angela: dejanska starost = 35 Angela: pretvarjena starost = 32

Tu lastnost actualAge deluje po pričakovanjih.

Vendar pa obstaja dodatna logika nastaviteljev za spreminjanje vrednosti lastnosti starosti.

Zanimive Članki...