Getters e setters Kotlin (com exemplo)

Neste artigo, você aprenderá a usar getters e setters em Kotlin com a ajuda de um exemplo.

Antes de aprender sobre getters e setter, certifique-se de verificar a classe e os objetos Kotlin.

Na programação, os getters são usados ​​para obter o valor da propriedade. Da mesma forma, setters são usados ​​para definir o valor da propriedade.

No Kotlin, getters e setters são opcionais e são gerados automaticamente se você não os criar em seu programa.

Como getters e setters funcionam?

O seguinte código em Kotlin

 classe Person (var name: String = "defaultValue")

é equivalente a

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

Quando você instancia o objeto da Personclasse e inicializa a propriedade name, ela é passada para o valor do parâmetro setters e define o campo como valor.

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

Agora, quando você acessar a propriedade name do objeto, obterá o campo por causa do código get() = field.

 println ("$ (p.name)")

Aqui está um exemplo prático:

 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 você executa o programa, a saída será:

 macaco 

É assim que getters e setters funcionam por padrão. No entanto, você pode alterar o valor da propriedade (modificar o valor) usando getters e setters.

Exemplo: Alteração do valor da propriedade

 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 você executa o programa, a saída será:

 Maria: idade real = 15 Maria: idade fingida = 18 Ângela: idade real = 35 Ângela: idade fingida = 32

Aqui, a propriedade actualAge funciona conforme o esperado.

No entanto, há uma lógica adicional configurada para modificar o valor da propriedade age.

Artigos interessantes...