Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Shadowing

Me relembre porfavor: o que é shadowing?

1 resposta
solução

Oi Manoel, shadowing é quando uma variável local de um método acaba sombreando um atributo. Exemplo:

public class Pessoa {

    private String nome;

    public String setNome(String nome) {

    }
}

qualquer referencia à variável nome dentro do método setNome(), será o mais próximo, que neste caso é o parâmetro. O seguinte código por exemplo, não altera o atributo:

public String setNome(String nome) {
    // escondendo o atributo, por conta do parametro
    nome = nome;    
}

Para realmente mudar o valor do atributo, você tem que usar o this, que é o que irá diferenciar o atributo do parâmetro do método:

public String setNome(String nome) {
    this.nome = nome;    
}

Faz sentido? Abraço!