Kotlin Getters og Setters (med eksempel)

I denne artikkelen lærer du å bruke getters og settere i Kotlin ved hjelp av et eksempel.

Før du lærer om getters og setter, må du sjekke Kotlin-klassen og gjenstandene.

I programmering brukes getters for å få verdi av eiendommen. Tilsvarende brukes settere for å sette verdi på eiendommen.

I Kotlin er getters og setter valgfrie og genereres automatisk hvis du ikke oppretter dem i programmet ditt.

Hvordan fungerer getters og settere?

Følgende kode i Kotlin

 klasse Person (var navn: String = "defaultValue")

tilsvarer

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

Når du organiserer objektet til Personklassen og initialiserer navnegenskapen, blir den overført til parameterverdien setter og setter feltet til verdi.

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

Nå, når du åpner navnegenskapen til objektet, får du felt på grunn av koden get() = field.

 println ("$ (p.name)")

Her er et arbeidseksempel:

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

Når du kjører programmet, vil utdataene være:

 knekt 

Slik fungerer getters og settere som standard. Du kan imidlertid endre verdien på eiendommen (endre verdi) ved hjelp av getters og setter.

Eksempel: Endring av verdien på eiendommen

 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 )

Når du kjører programmet, vil utdataene være:

 Maria: faktisk alder = 15 Maria: late alder = 18 Angela: faktisk alder = 35 Angela: late alder = 32

Her fungerer actualAge-egenskapen som forventet.

Imidlertid er det ytterligere logikk som setter for å endre verdien på aldersegenskapen.

Interessante artikler...