Quelles sont les variables Shadow en Java? [dupliquer]


Cette question a déjà une réponse ici:

Je lisais un livre et je suis tombé sur le terme Shadow Variables en Java mais il n'y avait pas de description pour cela. Finalement, à quoi servent ces variables et comment sont-elles mises en œuvre?

Author: sTg, 2014-10-10

1 answers

Au lieu de fournir ma propre description, je peux vous demander de lire à ce sujet par exemple ici: http://en.wikipedia.org/wiki/Variable_shadowing . Une fois que vous avez compris l'ombrage des variables, je vous recommande de continuer à lire sur les méthodes de superposition/ ombrage et la visibilité en général pour obtenir une compréhension complète de ces termes.

En fait puisque la question a été posée en termes de Java voici un mini-exemple:

    public class Shadow {

        private int myIntVar = 0;

        public void shadowTheVar(){

            // since it has the same name as above object instance field, it shadows above 
            // field inside this method
            int myIntVar = 5;

            // If we simply refer to 'myIntVar' the one of this method is found 
            // (shadowing a seond one with the same name)
            System.out.println(myIntVar);

            // If we want to refer to the shadowed myIntVar from this class we need to 
            // refer to it like this:
            System.out.println(this.myIntVar);
        }

        public static void main(String[] args){
            new Shadow().shadowTheVar();
        }
    }
 8
Author: JBA, 2014-10-10 10:29:24