Java中的影子变量是什么?
我在读一本书,偶然发现了Java中的术语“影子变量”,但没有对它的描述。最终,这些变量是用来做什么的?它们是如何实现的?我可能会要求您阅读相关内容,而不是提供我自己的描述,例如:。一旦您理解了变量的阴影,我建议您继续阅读覆盖/阴影方法和可见性的相关内容,以全面理解这些术语 事实上,由于这个问题是用Java提出的,这里有一个小例子:Java中的影子变量是什么?,java,jakarta-ee,Java,Jakarta Ee,我在读一本书,偶然发现了Java中的术语“影子变量”,但没有对它的描述。最终,这些变量是用来做什么的?它们是如何实现的?我可能会要求您阅读相关内容,而不是提供我自己的描述,例如:。一旦您理解了变量的阴影,我建议您继续阅读覆盖/阴影方法和可见性的相关内容,以全面理解这些术语 事实上,由于这个问题是用Java提出的,这里有一个小例子: public class Shadow { private int myIntVar = 0; public void s
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();
}
}
在Java中,有三种变量:局部变量、实例变量和类变量。变量有其作用域。不同类型的变量具有不同的作用域。如果存在范围更近的同名变量,则变量将被隐藏。换句话说,按名称引用变量将使用作用域中最接近的变量,外部作用域中的变量将被隐藏。在本文中可以看到关于隐藏的快速思考:尽量不要使用隐藏变量。它使代码读者感到困惑。