2
respostas

O uso do this é opcional

Me corrijam se eu estiver errado, mas essa afirmação "O uso do this é opcional" no feedback da alternativa correta, não é 100% verdadeira em todos os cenários correto? Quando se tem parâmetros com o mesmo nome de um atribudo de uma classe, querendo nós, fazer referência ao atributo da classe e não ao parâmetro, obrigatóriamente temos que o usar o this não é?

public class Pessoa {
    int idade;
 }

Não surte efeito no atributo idade:

public void setIdade(int idade) {
    idade = idade;
 }

De fato, altera o atributo idade:

public void setIdade(int idade) {
    this.idade = idade;
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Sim, para o caso de se houver parâmetro de mesmo nome com um atributo de instância de uma classe, a referência de menor escopo é o que prevalece em um método, que neste caso seria o parâmetro idade, embora que não houvesse erro de compilação nem de execução, a IDE acusaria warning.

Não sei o contexto dessa questão, se calhar pode ter um contexto completamente diferente deste, e de fato o this é opcional, exceto se você queira realmente fazer o que você disse neste tópico.

Bom, do ponto de vista da aula, o feedback da alternativa correta de fato não tá errado, pois o instrutor não chega a usar parâmetros com o mesmo nome do atributo, então se o feedback se refere ao contexto do vídeo, ok. Mas num contexto geral, pode ter sim esse caso de um parâmetro com o mesmo nome do atributo como você disse. Esse feedback então deixaria de destacar a obrigatóriedade do uso do this na intenção de fazer referência a esse atributo da classe e não ao parâmetro, só uma observação, pois eu acho que do jeito que tá, da para interpretar de forma equivocada