【发布时间】:2018-10-17 19:39:20
【问题描述】:
当我们尝试这段代码时,它不起作用。
public class f {
public static void main(String[] args) {
{ // aussen
int a = 1;
int b = 2;
{ // innen
System.out.println(a);
// gibt 1 aus
int b = 3;
System.out.println(b); // gibt 3 aus
}
}
}
}
但是我们的教授。表示在内部作用域中可以再次声明变量,并且该内部声明用于变量b的内部作用域。但是在互联网上http://www.mathcs.emory.edu/~cheung/Courses/170/Syllabus/08/scope.html 在“具有相同名称 r 的变量发生在内部范围内”下,我们发现我们的错误是合法的。这在过去 9 年中是否发生了变化?
【问题讨论】:
-
另外,我对你在这里实际问的问题感到困惑 - 你能edit 澄清一下吗?
-
据我所知,从 Java 1.0 版本开始,这点并没有改变,事实上,Java 对改变非常保守。
-
最后一个问题的答案是“因为语言开发者如此决定”。请注意,此限制不适用于本地阴影类变量。老实说,你只需要转回你的导师并要求澄清。