class Grade {
public static int f = 2;
public static void main(String[] args) {
for (int f = 0; f < 2; f++) {
System.out.println(f);
}
}
}
它是怎么发生的,“int f”是否覆盖静态变量f?我认为static int f被整个类共享,编译器为什么不给出这个变量被重新定义的错误消息?为什么它不会成为静态f的重复?我认为,在Java中,范围块继承其父块的变量。Java中的变量范围
谢谢。有什么可读的吗? –
维基百科页面应该很清楚。除了知道阴影如何(以及在哪里)发挥作用之外,没有什么别的了。 – Mysticial
@ArtemMoskalev Java语言问题的官方来源是Java语言规范(又名JLS)。有关您的问题,请参阅第6.3.1节。 http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.3.1 –