Kotlin Getters and Setters (z przykładem)

W tym artykule nauczysz się korzystać z metod pobierających i ustawiających w Kotlinie na przykładzie.

Zanim poznasz metody pobierające i ustawiające, koniecznie sprawdź klasę i obiekty Kotlin.

W programowaniu metody pobierające służą do pobierania wartości właściwości. Podobnie metody ustawiające są używane do ustawiania wartości właściwości.

W Kotlinie metody pobierające i ustawiające są opcjonalne i są generowane automatycznie, jeśli nie utworzysz ich w swoim programie.

Jak działają metody pobierające i ustawiające?

Poniższy kod w Kotlin

 klasa Osoba (nazwa zmiennej: String = "defaultValue")

jest równa

 class Osoba (nazwa zmiennej: String = "defaultValue" // getter get () = pole // setter set (wartość) (pole = wartość))

Podczas tworzenia wystąpienia obiektu Personklasy i inicjalizacji właściwości name jest ona przekazywana do wartości parametru ustawiającego i ustawia pole na wartość.

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

Teraz, gdy uzyskasz dostęp do właściwości name obiektu, otrzymasz pole z powodu kodu get() = field.

 println ("$ (p.name)")

Oto działający przykład:

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

Po uruchomieniu programu wynik będzie następujący:

 Jacek 

W ten sposób domyślnie działają metody pobierające i ustawiające. Możesz jednak zmienić wartość właściwości (zmodyfikować wartość) za pomocą metod pobierających i ustawiających.

Przykład: zmiana wartości właściwości

 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 )

Po uruchomieniu programu wynik będzie następujący:

 Maria: rzeczywisty wiek = 15 Maria: udawany wiek = 18 Angela: rzeczywisty wiek = 35 Angela: udawany wiek = 32

W tym przypadku właściwość currentAge działa zgodnie z oczekiwaniami.

Istnieje jednak dodatkowa logika służąca do modyfikowania wartości właściwości age.

Interesujące artykuły...