Kotlin Getters és Setters (példával)

Ebben a cikkben megtanulja használni a kotlin-i getterek és beállítók használatát egy példa segítségével.

Mielőtt megismerkedne a getterekkel és a szetterekkel, mindenképpen ellenőrizze a Kotlin osztályt és tárgyakat.

A programozásban a getters értékeket használják az ingatlan értékének megszerzésére. Hasonlóképpen, beállítókat használnak az ingatlan értékének beállításához.

Kotlinban a getterek és a beállítók nem kötelezőek, és automatikusan generálódnak, ha nem a programban hozod létre őket.

Hogyan működnek a getterek és a beállítók?

A következő kód Kotlinban

 class Person (var név: String = "defaultValue")

egyenértékű

 class Person (var név: String = "defaultValue" // getter get () = mező // beállító készlet (érték) (mező = érték))

Amikor példányosítja az Personosztály objektumát, és inicializálja a név tulajdonságot, akkor az átadódik a beállító paraméter értékének, és a mezőt értékre állítja.

 val p = Személy () p.name = "jack"

Most, amikor hozzáfér az objektum név tulajdonságához, a kód miatt mezőt kap get() = field.

 println ("$ (p.name)")

Íme egy működő példa:

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

A program futtatásakor a kimenet a következő lesz:

 Jack 

Alapértelmezés szerint így működnek a getterek és a beállítók. Azonban a tulajdonság értékét módosíthatja (értéket módosíthatja) getterek és beállítók segítségével.

Példa: A tulajdonság értékének megváltoztatása

 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 )

A program futtatásakor a kimenet a következő lesz:

 Maria: tényleges életkor = 15 Maria: színlelt életkor = 18 Angela: tényleges életkor = 35 Angela: színlelt életkor = 32

Itt a ténylegesAge tulajdonság a várakozásoknak megfelelően működik.

Van azonban további logikai beállítók a age tulajdonság értékének módosítására.

érdekes cikkek...