English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, imparerai a usare getter e setter in Kotlin con un esempio.
Prima di imparare getter e setter, è meglio che tu abbia già capitoClassi e oggetti in Kotlin.
Nel programming, il getter viene usato per ottenere il valore di un attributo. Allo stesso modo, il setter viene usato per impostare il valore di un attributo.
In Kotlin, getter e setter sono opzionali; se non vengono creati nel programma, vengono generati automaticamente.
Il seguente codice in Kotlin
class Person { var name: String = "defaultValue" {}
equivale a
class Person { var name: String = "defaultValue" // getter get() = field // setter set(value) { field = value {} {}
Quando instanziate un oggetto della classe Person e inizializzate l'attributo name, passerai il valore ai parametri del setter e imposterai field con value.
val p = Person() p.name = "jack"
Ora, quando accedi all'attributo name dell'oggetto, grazie al codice get()=field, otterrai field
println("${p.name}")
Questo è un esempio di lavoro:
fun main(args: Array<String>) { val p = Person() p.name = "jack" println("${p.name}") {} class Person { var name: String = "defaultValue" get() = field set(value) { field = value {} {}
Quando si esegue il programma, l'output è:
jack
Di default, è così che funzionano i getter e i setter. Ma puoi usare getter e setter per modificare i valori degli attributi (modificare il valore).
fun main(args: Array<String>) { val maria = Girl() maria.actualAge = 15 maria.age = 15 println("玛莉亚: 实际年龄 = ${maria.actualAge}") println("玛莉亚: 虚拟年龄 = ${maria.age}") val angela = Girl() angela.actualAge = 35 angela.age = 35 println("安戈洛: 实际年龄 = ${angela.actualAge}") println("安戈洛: 虚拟年龄 = ${angela.age}") {} class Girl { var age: Int = 0 get() = field set(value) { field = if (value < 18) 18 else if (value >= 18 && value <= 30) value else value-3 {} var actualAge: Int = 0 {}
Quando si esegue il programma, l'output è:
Maria: Età reale = 15 Maria: Età virtuale = 18 Angolo: Età reale = 35 Angolo: Età virtuale = 32
Qui, l'attributo ActialAge funziona come previsto.
Ma, ci sono altri logici per impostare il programma setter per modificare il valore dell'attributo age.