¿Para qué se utiliza el sombreado de variables en una clase Java?

Resuelto Jayson asked hace 15 años • 5 respuestas

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);
    }
}
Jayson avatar Jul 07 '09 19:07 Jayson
Aceptado

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.

Yishai avatar Jul 07 '2009 12:07 Yishai

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.

Tom Jefferys avatar Jul 07 '2009 12:07 Tom Jefferys