Java 这个代码的输出是10,为什么?
为什么这给了我10作为输出,而不是一个错误Java 这个代码的输出是10,为什么?,java,Java,为什么这给了我10作为输出,而不是一个错误 public class A { static int a = m1(); static int m1(){ return 10; } public static void main(String args[]) { A a1 = null; System.out.println(a1.a); } } 因为a是一个静态变量,所以对a1的引用不会被取消引用。您可
public class A {
static int a = m1();
static int m1(){
return 10;
}
public static void main(String args[]) {
A a1 = null;
System.out.println(a1.a);
}
}
因为
a
是一个静态变量,所以对a1
的引用不会被取消引用。您可能需要编写A.A
,以使代码更直观。因为编译器在这里非常智能,它基本上取代了
System.out.println(a1.a);
与
为什么会出现错误?“想要”?你可能想用真正的英语单词,而不是俚语。这不是yahoo groups。请不要使用Java.Duplicate of和许多其他的代码片段…另一方面:我仍然想知道为什么Java甚至允许在这里使用符号
a1.a
,因为这样调用静态方法/变量只会导致混乱。。。
System.out.println(A.a); //The name of your class 'A'