什么是Java中的阴影变量?

时间:2014-10-10 10:21:05

标签: java java-ee

我正在读一本书,并在Java中遇到了“阴影变量”一词,但没有任何描述。最终这些变量用于什么以及如何实施?

1 个答案:

答案 0 :(得分:8)

我可能会要求您在此处阅读相关内容,而不是提供我自己的说明:http://en.wikipedia.org/wiki/Variable_shadowing。一旦理解了变量的阴影,我建议您继续阅读有关覆盖/阴影方法和可见性的内容,以全面了解这些术语。

实际上,因为这个问题在Java中被问到这里是一个小例子:

    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();
        }
    }