为什么大括号没有在Java中定义单独的局部作用域?我期待这是主要大括号语言(C,C++,Java,C#)的共同特征.
class LocalScopeTester
{
public static void main(String... args)
{
Dog mine = new Dog("fido");
if (mine.getName().equals("ace"))
{
Dog mine = new Dog("spot"); // error: duplicate local
}
else
{
Dog mine = new Dog("barkley"); // error: duplicate local
{
Dog mine = new Dog("boy"); // error: duplicate local
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Thi*_*ilo 17
它们确实定义了一个单独的局部作用域,但您仍然无法屏蔽父作用域中的局部变量(但您当然可以屏蔽实例变量).
但是您可以定义新变量(具有不同的名称),并且它们的范围将限制在大括号内.
| 归档时间: |
|
| 查看次数: |
2973 次 |
| 最近记录: |