Kotlin Getters och Setters (med exempel)

Innehållsförteckning

I den här artikeln lär du dig att använda getters och setters i Kotlin med hjälp av ett exempel.

Innan du lär dig om getters och setter, var noga med att kolla Kotlin-klass och objekt.

Vid programmering används getters för att få värdet på fastigheten. På samma sätt används setter för att ställa in värdet på fastigheten.

I Kotlin är getters och setter valfria och genereras automatiskt om du inte skapar dem i ditt program.

Hur fungerar getters och setters?

Följande kod i Kotlin

 klass Person (var namn: String = "defaultValue")

är ekvivalent med

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

När du instanserar objektet i Personklassen och initierar namnegenskapen skickas det till parametervärdet setters och sätter fältet till värde.

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

Nu när du öppnar namnegenskapen för objektet får du fält på grund av koden get() = field.

 println ("$ (sidnamn)")

Här är ett fungerande exempel:

 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 kör programmet blir resultatet:

 jack 

Så här fungerar getters och setter som standard. Du kan dock ändra värdet på egenskapen (ändra värde) med hjälp av getters och setter.

Exempel: Ändring av fastighetens värde

 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 kör programmet blir resultatet:

 Maria: faktisk ålder = 15 Maria: låtsas ålder = 18 Angela: faktisk ålder = 35 Angela: låtsas ålder = 32

Här fungerar egenskapen actualAge som förväntat.

Det finns dock ytterligare logik är setter för att ändra värdet på åldersegenskapen.

Intressanta artiklar...