Getters y Setters de Kotlin (con ejemplo)

En este artículo, aprenderá a usar getters y setters en Kotlin con la ayuda de un ejemplo.

Antes de aprender sobre getters y setter, asegúrese de verificar la clase y los objetos de Kotlin.

En programación, los captadores se utilizan para obtener el valor de la propiedad. Del mismo modo, los setters se utilizan para establecer el valor de la propiedad.

En Kotlin, los getters y setters son opcionales y se generan automáticamente si no los crea en su programa.

¿Cómo funcionan los getters y setters?

El siguiente código en Kotlin

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

es equivalente a

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

Cuando crea una instancia del objeto de la Personclase e inicializa la propiedad de nombre, se pasa al valor del parámetro setters y establece el campo en valor.

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

Ahora, cuando acceda a la propiedad de nombre del objeto, obtendrá un campo debido al código get() = field.

 println ("$ (p.name)")

Aquí hay un ejemplo de trabajo:

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

Cuando ejecute el programa, la salida será:

 Jack 

Así es como funcionan los captadores y definidores de forma predeterminada. Sin embargo, puede cambiar el valor de la propiedad (modificar el valor) usando getters y setters.

Ejemplo: cambio de valor de la propiedad

 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 )

Cuando ejecute el programa, la salida será:

 María: edad real = 15 María: edad fingida = 18 Ángela: edad real = 35 Ángela: edad fingida = 32

Aquí, la propiedad actualAge funciona como se esperaba.

Sin embargo, existe una lógica adicional en los establecedores para modificar el valor de la propiedad de edad.

Articulos interesantes...