Classes ou variables dans java ombre

Shadowing se réfère à la pratique de la programmation Java en utilisant deux variables avec le même nom dans les champs qui se chevauchent. Quand vous faites cela, la variable avec le champ d'application de niveau supérieur est caché parce que la variable avec une portée de niveau inférieur remplace. La variable de niveau supérieur est alors “ ombre.

Tu peux accéder à une classe d'ombre ou variable d'instance par pleinement qualification - qui est, en fournissant le nom de la classe qui la contient.

Par exemple, considérons ce programme:

public class ShadowApp {static void main (String [] args) static int x publiques {x = 5 System.out.println ("x =" + x) -int xx = 10 System.out.println ("x = "+ x) -System.out.println (" ShadowApp.x = "+ ShadowApp.x) -}}

Voici le résultat:

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

Ici, la première System.out.println déclaration imprime la valeur de la variable de classe X. Ensuite, la variable de classe X est éclipsé par la variable locale X, dont la valeur est imprimé par la deuxième System.out.println déclaration. Enfin, la troisième System.out.println déclaration imprime la variable de classe ombre en fournissant son nom pleinement qualifié (ShadowApp.x).

La portée d'une variable locale qui ombres un classe variable ne commence pas nécessairement au même point que la portée de la variable locale commence. L'observation commence lorsque la variable locale est déclarée, mais la portée de la variable locale ne commence pas jusqu'à ce que la variable est initialisée. Si vous tentez d'accéder à la variable entre la déclaration et l'initialisation, le compilateur Java affiche un message d'erreur.

Parce que l'observation est une source commune d'erreurs, vous voulez éviter d'utiliser autant que possible.


» » » » Classes ou variables dans java ombre