动手动脑——同名变量的屏蔽原则

在Java中,变量的“同名变量的屏蔽原则”通常指的是变量作用域的问题。当在不同的作用域中定义了同名的变量时,内部作用域的变量会“屏蔽”外部作用域的变量。这意味着在内部作用域中访问该变量名时,将会访问到内部作用域中定义的变量,而不是外部作用域中的变量。
下面是一个简单的示例,展示了变量的屏蔽原则:
public class VariableShadowingExample {
int outerVar = 10; // 定义一个类变量

public void methodOne() {
    int outerVar = 20; // 定义一个方法变量,与类变量同名
    System.out.println("In methodOne, outerVar = " + outerVar); // 输出20
    methodTwo();
}

public void methodTwo() {
    int outerVar = 30; // 定义一个方法变量,与类变量和methodOne中的变量同名
    System.out.println("In methodTwo, outerVar = " + outerVar); // 输出30
}

public static void main(String[] args) {
    VariableShadowingExample v = new VariableShadowingExample();
    int outerVar = 40; // 定义一个局部变量,与类变量同名
    System.out.println("In main, outerVar = " + outerVar); // 输出40
    v.methodOne();
}

}
在这个示例中,我们定义了一个类变量outerVar,然后在methodOne方法中定义了一个同名的局部变量,接着在methodOne方法内部调用的methodTwo方法中又定义了一个同名的局部变量。最后,在main方法中也定义了一个同名的局部变量。
输出结果将会是:
In main, outerVar = 40
In methodOne, outerVar = 20
In methodTwo, outerVar = 30
从输出结果可以看出,每个作用域中的outerVar变量都屏蔽了外部作用域中的同名变量。

posted @   仙人兵马俑  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示