Kotlin Getters and Setters (avec exemple)

Dans cet article, vous apprendrez à utiliser les getters et les setters dans Kotlin à l'aide d'un exemple.

Avant d'en apprendre davantage sur les getters et les setter, assurez-vous de vérifier la classe et les objets Kotlin.

En programmation, les getters sont utilisés pour obtenir la valeur de la propriété. De même, les setters sont utilisés pour définir la valeur de la propriété.

Dans Kotlin, les getters et les setters sont facultatifs et sont générés automatiquement si vous ne les créez pas dans votre programme.

Comment fonctionnent les getters et les setters?

Le code suivant dans Kotlin

 classe Personne (nom de la variable: String = "defaultValue")

est équivalent à

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

Lorsque vous instanciez l'objet de la Personclasse et initialisez la propriété name, elle est transmise à la valeur du paramètre setters et définit le champ sur value.

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

Maintenant, lorsque vous accédez à la propriété name de l'objet, vous obtiendrez un champ à cause du code get() = field.

 println ("$ (p.name)")

Voici un exemple de travail:

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

Lorsque vous exécutez le programme, la sortie sera:

 jack 

C'est ainsi que fonctionnent les getters et les setters par défaut. Cependant, vous pouvez changer la valeur de la propriété (modifier la valeur) en utilisant des getters et des setters.

Exemple: modification de la valeur de la propriété

 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 )

Lorsque vous exécutez le programme, la sortie sera:

 Maria: âge réel = 15 Maria: âge prétendu = 18 Angela: âge réel = 35 Angela: âge prétendu = 32

Ici, la propriété actualAge fonctionne comme prévu.

Cependant, il existe une logique supplémentaire pour les setters pour modifier la valeur de la propriété age.

Articles intéressants...