为什么 "return x.a;" 不发出错误信号?
Why doesn't "return x.a;" signal an error?
我明白为什么“return一个;”发出错误信号(因为 'a' 是非静态属性,我试图在静态方法中引用它),但我不明白为什么“return x.a;”不表示错误。 'x'的'a'属性还是非静态的,应该不会报错吧?
class A{
private int a=0;
private static int b =0;
public int m(){
return a;
}
public static int n(A x){
return x.a;//not an error
return a;//error
}
}
but I don't understand why "return x.a;" doesn't signal an error
return x.a
是有效的,因为 x
可以作为静态方法中的局部变量访问,并且是 A
的实例。 a
是 A
实例上的实例 属性,因此 x.a
完全有效。
我明白为什么“return一个;”发出错误信号(因为 'a' 是非静态属性,我试图在静态方法中引用它),但我不明白为什么“return x.a;”不表示错误。 'x'的'a'属性还是非静态的,应该不会报错吧?
class A{
private int a=0;
private static int b =0;
public int m(){
return a;
}
public static int n(A x){
return x.a;//not an error
return a;//error
}
}
but I don't understand why "return x.a;" doesn't signal an error
return x.a
是有效的,因为 x
可以作为静态方法中的局部变量访问,并且是 A
的实例。 a
是 A
实例上的实例 属性,因此 x.a
完全有效。