class C {
static int b = 1;
void f1() {
System.out.println(C.b); // Access static variable indirectly
}
}
class A {
public static void main(String a[]) {
C as = new C();
as.f1();
}
}
class C {
int a = 0;
void f1() {
System.out.println(C.a); // Access non static variable indirectly
}
}
class A {
public static void main(String a[]) {
C as = new C();
as.f1();
}
}
第二个程序在我们编写System.out.println(**a**)
时有效,但为什么在我们编写System.out.println(**C.a**)
时失败而不是在编写System.out.println(**C.b**)
时有效的第一个程序?
答案 0 :(得分:0)
在Java中,我们必须在类中键入membens:static和instance。
System.out.println(C.a);
a
是一个实例变量,因此必须仅在实例中调用C.a
在类的静态区域中调用变量a
,而不是实例1