„Kotlin Getters and Setters“ (su pavyzdžiu)

Šiame straipsnyje naudodamiesi pavyzdžiu išmoksite naudoti kotletus ir seterius Kotline.

Prieš sužinodami apie geterius ir seterius, būtinai patikrinkite Kotlino klasę ir objektus.

Programuojant getters yra naudojami norint gauti turto vertę. Panašiai, nustatant turto vertę, naudojami seteriai.

Kotline getters ir seteriai yra neprivalomi ir yra automatiškai sugeneruojami, jei jų nesukuriate savo programoje.

Kaip veikia getters ir seteriai?

Šis kodas Kotlin

 klasės asmuo (var name: String = "defaultValue")

yra lygiavertis

 klasės asmuo (var vardas: eilutė = "defaultValue" // getter get () = laukas // seterio rinkinys (vertė) (laukas = reikšmė))

Kai jūs išradote Personklasės objektą ir inicializuojate vardo ypatybę, jis perduodamas nustatytojo parametro vertei ir nustato lauko reikšmę.

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

Dabar, kai pasieksite objekto pavadinimo ypatybę, gausite lauką dėl kodo get() = field.

 println ("$ (p.name)")

Štai veikiantis pavyzdys:

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

Kai paleisite programą, išvestis bus:

 Domkratas 

Taip pagal nutylėjimą veikia „geteriai“ ir „setters“. Tačiau galite pakeisti nuosavybės vertę (modifikuoti vertę) naudodami getters ir seters.

Pavyzdys: nuosavybės vertės keitimas

 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 )

Kai paleisite programą, išvestis bus:

 Maria: tikrasis amžius = 15 Maria: apsimetęs amžius = 18 Angela: tikrasis amžius = 35 Angela: apsimetęs amžius = 32

Čia realusAge turtas veikia kaip tikėtasi.

Tačiau norint nustatyti amžiaus nuosavybės vertę, yra papildoma logika.

Įdomios straipsniai...