动手动脑作业3
在Java中,如果一个变量在不同的作用域中被多次定义,那么位于内层作用域的变量将会“屏蔽”位于外层作用域的变量,即内层作用域的变量将具有更高的优先级。
下面是一个示例程序,用于演示同名变量的屏蔽原则:
```java
public class VariableShadowingExample {
public static void main(String[] args) {
int num = 10; // 外层作用域的变量num
System.out.println("外层作用域的变量num:" + num);
{
int num = 20; // 内层作用域的变量num,屏蔽了外层作用域的变量num
System.out.println("内层作用域的变量num:" + num);
}
System.out.println("外层作用域的变量num:" + num);
}
}
```
在这个示例程序中,我们定义了一个外层作用域的变量`num`,并初始化为10。然后,在代码块(内层作用域)中,我们又定义了一个同名变量`num`,并初始化为20。由于内层作用域的变量`num`屏蔽了外层作用域的变量`num`,所以在代码块中打印的是内层作用域的变量`num`的值,而在代码块外打印的是外层作用域的变量`num`的值。
运行这个程序,输出结果为:
```
外层作用域的变量num:10
内层作用域的变量num:20
外层作用域的变量num:10
```
可以看到,内层作用域的变量`num`屏蔽了外层作用域的变量`num`,所以在代码块中打印的是内层作用域的变量`num`的值,而在代码块外打印的是外层作用域的变量`num`的值。