În acest articol, veți învăța să utilizați getters și setere în Kotlin cu ajutorul unui exemplu.
Înainte de a afla despre getters și setter, asigurați-vă că verificați clasa și obiectele Kotlin.
În programare, getters sunt folosite pentru a obține valoarea proprietății. În mod similar, seterii sunt utilizați pentru stabilirea valorii proprietății.
În Kotlin, getters și setere sunt opționale și sunt generate automat dacă nu le creați în programul dvs.
Cum funcționează getters și seters?
Următorul cod în Kotlin
clasa Persoană (var name: String = "defaultValue")
este echivalent cu
clasă Persoană (var nume: Șir = "Valoare implicită" // getter get () = câmp // set set (valoare) (câmp = valoare))
Când instanțiați obiectul Person
clasei și inițializați proprietatea nume, acesta este trecut la valoarea parametrului setatorilor și setează câmpul la valoare.
val p = Person () p.name = "jack"
Acum, când accesați proprietatea de nume a obiectului, veți obține câmp din cauza codului get() = field
.
println ("$ (p.name)")
Iată un exemplu de lucru:
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 ) )
Când rulați programul, ieșirea va fi:
jack
Acesta este modul în care funcționează în mod prestabilit getters și seters. Cu toate acestea, puteți modifica valoarea proprietății (modificați valoarea) folosind getters și setere.
Exemplu: Modificarea valorii proprietății
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 )
Când rulați programul, ieșirea va fi:
Maria: vârsta reală = 15 Maria: vârsta pretinsă = 18 Angela: vârsta reală = 35 Angela: vârsta pretinsă = 32
Aici, proprietatea actualAge funcționează conform așteptărilor.
Cu toate acestea, există o logică suplimentară în care setatorii modifică valoarea proprietății de vârstă.