Me relembre porfavor: o que é shadowing?
Me relembre porfavor: o que é shadowing?
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!