Kotlin Getters and Setters (con esempio)

In questo articolo imparerai a usare getter e setter in Kotlin con l'aiuto di un esempio.

Prima di imparare a usare getter e setter, assicurati di controllare la classe e gli oggetti di Kotlin.

Nella programmazione, i getter vengono utilizzati per ottenere il valore della proprietà. Allo stesso modo, i setter vengono utilizzati per impostare il valore della proprietà.

In Kotlin, getter e setter sono opzionali e vengono generati automaticamente se non vengono creati nel programma.

Come funzionano getter e setter?

Il codice seguente in Kotlin

 class Person (nome var: String = "defaultValue")

è equivalente a

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

Quando si crea un'istanza dell'oggetto della Personclasse e si inizializza la proprietà name, questa viene passata al valore del parametro setters e imposta il campo su value.

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

Ora, quando accedi alla proprietà name dell'oggetto, otterrai il campo a causa del codice get() = field.

 println ("$ (p.name)")

Ecco un esempio funzionante:

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

Quando esegui il programma, l'output sarà:

 Jack 

Ecco come funzionano i getter e i setter di default. Tuttavia, è possibile modificare il valore della proprietà (modificare il valore) utilizzando getter e setter.

Esempio: modifica del valore della proprietà

 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 )

Quando esegui il programma, l'output sarà:

 Maria: età effettiva = 15 Maria: età presunta = 18 Angela: età effettiva = 35 Angela: età presunta = 32

Qui, la proprietà actualAge funziona come previsto.

Tuttavia, esiste una logica aggiuntiva per i setter per modificare il valore della proprietà age.

Articoli interessanti...