1
resposta

Sobre o uso do this

Eu removi o this do corpo da função e o resultado foi o mesmo. Alguém pode me esclarecer o motivo desse comportamento, e se de fato é necessário usar o this.

class CalculadoraBonificacao {
    var total: Double = 0.0
        private set

    fun registra(funcionario: Funcionario) {
        total += funcionario.bonificacao()
    }

    fun registra(gerente: Gerente) {
        total += gerente.bonificacao()
    }

    fun registra(diretor: Diretor) {
        total += diretor.bonificacao()
    }
}
1 resposta

Fala Fabricio, tudo certo?

O this é uma referência ao próprio objeto da classe e em muitos casos ele é, sim, opcional. Ainda assim, é recomendável utilizar ele pois fica muito mais fácil de analisar o código posteriormente: ao ler, fica claro que estamos falando do atributo da classe, ao invés de uma variável qualquer.

O this pode, também, ser obrigatório em casos de conflito de escopo, como uma função que recebe um parâmetro com o mesmo nome da variável. Nesse caso é necessário utilizar o this.atributo para deixar claro ao compilador que estamos tratando do atributo da classe e não da variável local da função.

Para todo caso, o uso do this traz muitos benefícios para a legibilidade do código, ainda quando não é obrigatório, então é uma boa prática fazer sua utilização.

Em caso de dúvidas, estou à disposição.

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!