¿Para qué se utiliza el sombreado de variables en una clase Java?
Estoy leyendo mi libro Deitel, Java How to Program y encontré el término sombreado . Si se permite el sombreado, ¿qué situación o qué propósito tiene en una clase Java?
Ejemplo:
public class Foo {
int x = 5;
public void useField() {
System.out.println(this.x);
}
public void useLocal() {
int x = 10;
System.out.println(x);
}
}
El propósito básico del sombreado es desacoplar el código local de la clase circundante. Si no estaba disponible, considere el siguiente caso.
Se lanza una Class Foo en una API. En su código lo subclasifica y en su subclase usa una variable llamada bar. Luego Foo lanza una actualización y agrega una variable protegida llamada Bar a su clase.
Ahora tu clase no se llevará a cabo debido a un conflicto que no pudiste anticipar.
Sin embargo, no hagas esto a propósito. Sólo deja que esto suceda cuando realmente no te importe lo que sucede fuera del alcance.
Puede ser útil para los configuradores que no desean tener que crear un nombre de variable separado solo para el parámetro del método, por ejemplo:
public void setX(int x) {
this.x = x;
}
Aparte de eso, los evitaría.