English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie mithilfe eines Beispiels lernen, getter und setter in Kotlin zu verwenden.
Bevor Sie getter und setter lernen, sollten Sie am besten bereitsKotlin-Klassen und -Objekte.
In der Programmierung wird der getter verwendet, um den Wert der Eigenschaft zu erhalten. Ebenso wird der setter verwendet, um den Wert der Eigenschaft zu setzen.
In Kotlin sind getter und setter optional. Wenn sie nicht im Programm erstellt werden, werden sie automatisch generiert.
Nachfolgendes Kotlin-Codebeispiel
class Person { var name: String = "defaultValue" }
entspricht
class Person { var name: String = "defaultValue" // getter get() = field // setter set(value) { field = value } }
Beim Instanziieren eines Objekts der Klasse Person und Initialisieren des Attributs name wird der Wert an die Parameter des Setters übergeben und field wird auf value gesetzt.
val p = Person() p.name = "jack"
Wenn Sie nun auf das Attribut name des Objekts zugreifen, erhalten Sie aufgrund des Codes get()=field den field
println("${p.name}")
Dies ist ein Beispiel, wie es funktioniert:
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 } }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
jack
Standardmäßig funktioniert das so, wie getter und setter arbeiten. Aber Sie können getter und setter verwenden, um den Wert der Eigenschaften zu ändern (Wert ändern).
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 }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
Maria: Tatsächlicher Alter = 15 Maria: Virtueller Alter = 18 Angol: Tatsächlicher Alter = 35 Angol: Virtueller Alter = 32
Hier funktioniert die Eigenschaft ActialAge wie erwartet.
Allerdings gibt es andere Logiken, um den Setter des Programms zu setzen und den Wert der Eigenschaft age zu ändern.