[Java] Utilizando a técnica de Shadowing
Uma dúvida muito recorrente entre programadores iniciantes, é sobre a ambiguidade entre
as variáveis e atributos dentro de uma classe, principalmente quando estão encapsulando
os atributos, fazendo um curso na Alura (que inclusive recomendo fortemente), descobri
sobre a técnica de shadowing, veja:
Para resolver problemas de ambiguidade entre variáveis dentro do mesmo escopo
utilizamos a técnica de shadowing, podemos referenciar pela própria classe; para variáveis de instância, usamos a palavra chave this
class Pessoa {
static int x = 0;
int y = 0;
public static void setX(int x) {
// Usando a referência da classe
Pessoa.x = x;
}
public void setY(int y) {
// usando o this
this.y = y;
}
}
Quando não usamos o this
ou o nome da classe para usar a variável, o compilador sempre utilizará a variável de menor escopo.
class X {
int a = 10;
public void metodo() {
int a = 20; // shadowing
System.out.println(a); // imprime 20
}
}