Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Modificar visibilidade das properties no construtor primário

Olá! Durante a aula me surgiu uma dúvida. Digamos que da mesma forma que a property saldo, eu também quisesse tornar os setters das properties titular e numero. Como eu poderia realizar essa operação, visto que essas properties estão sendo declaradas no construtor primário?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Lucas, você pode remover propriedades do construtor primário de uma data class se achar necessário. Na documentação do Kotlin tem um exemplo desse tipo de comportamento.

data class Person(val name: String) {
    var age: Int = 0
}

De toda forma, como as classes de dados já incorporam comportamentos por padrão (toString, equals), fique ciente que ao remover um parâmetro do construtor primário você perde esses comportamentos para a propriedade em si.

solução!

Olá!

É possível fazer assim:

fun main() {
    val conta = Conta(1001, "John Doe")
    conta.titular = "João" // Não irá permitir
}

class Conta(val numero: Int, titular: String) {
    var titular = titular
        private set    
}