Clases o variables en java sombreados

Remedo se refiere a la práctica de programación Java de utilizar dos variables con el mismo nombre dentro de los ámbitos que se superponen. Cuando haces eso, la variable con el alcance de nivel superior se oculta porque la variable con ámbito de nivel inferior que prevalece. La variable de nivel superior es entonces " la sombra."

Puedes acceder a una clase de sombra o variable de instancia por completo calificándolo - es decir, proporcionando el nombre de la clase que lo contiene.

Por ejemplo, considere este programa:

public class ShadowApp {main (String [] args) void estática static int x-públicas {x = 5-System.out.println ("x =" + x) -INT xx = 10 System.out.println ("x = "+ x) -System.out.println (" ShadowApp.x = "+ ShadowApp.x) -}}

Aquí está la salida:

x = 5x = 10x = 10ShadowApp.x = 5

Aquí, la primera System.out.println declaración imprime el valor de la variable de clase X. Entonces, la variable de clase X es la sombra de la variable local X, cuyo valor se imprime por el segundo System.out.println comunicado. Por último, la tercera System.out.println declaración imprime la variable de clase ensombrecida por proporcionar su nombre completo (ShadowApp.x).

El alcance de una variable local que ensombrece un clase variables no comienza necesariamente en el mismo punto que comienza el alcance de la variable local. La sombra comienza cuando se declara la variable local, pero el alcance de la variable local no comienza hasta que se inicializa la variable. Si intenta acceder a la variable entre la declaración y la inicialización, el compilador Java muestra un mensaje de error.

Debido a que el sombreado es una fuente común de errores, tendrá que evitar el uso de ella tanto como sea posible.




» » » » Clases o variables en java sombreados