Geters and Setters (s příkladem)

V tomto článku se naučíte používat getry a settery v Kotlinu pomocí příkladu.

Než se dozvíte o getrech a setterech, nezapomeňte zkontrolovat třídu a objekty Kotlin.

V programování se getry používají k získání hodnoty nemovitosti. Podobně se settery používají pro nastavení hodnoty vlastnosti.

V Kotlin jsou getry a setry volitelné a jsou automaticky generovány, pokud je nevytvoříte ve svém programu.

Jak fungují getry a setry?

Následující kód v Kotlin

 osoba třídy (var name: String = "defaultValue")

je ekvivalentní k

 třída Osoba (var name: String = "defaultValue" // getter get () = field // setter set (value) (field = value))

Když vytvoříte instanci objektu Persontřídy a inicializujete vlastnost name, předá se hodnotě parametru setters a nastaví pole na hodnotu.

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

Nyní, když vstoupíte do vlastnosti name objektu, získáte pole kvůli kódu get() = field.

 println ("$ (p.name)")

Zde je funkční příklad:

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

Když spustíte program, výstup bude:

 zvedák 

Takto ve výchozím nastavení fungují getry a settery. Hodnotu vlastnosti (změnit hodnotu) však můžete změnit pomocí getrů a setterů.

Příklad: Změna hodnoty nemovitosti

 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 )

Když spustíte program, výstup bude:

 Maria: skutečný věk = 15 Maria: předstíraný věk = 18 Angela: skutečný věk = 35 Angela: předstíraný věk = 32

Vlastnost actualAge zde funguje podle očekávání.

Existuje však další nastavovač logiky pro úpravu hodnoty vlastnosti age.

Zajímavé články...