这是一个主要的理论示例,但是如果在声明了局部变量“a”之后,如何在构造函数中引用实例变量“a”,而不是当前对象变量“this.a”?
public class Foobar {
public int a = 0;
public Foobar(int a) {
this.a = a;
}
public Foobar(int b, int c) {
a = b * c;
int a = c; //after this point, is there any way of refer to the instance variable a but not a in the current object (i.e. this.a)?
}
public int getA() {
return this.a;
}
public static void main(String[] args) {
Foobar foo = new Foobar(3);
Foobar bar = new Foobar(3, 1);
System.out.println(foo.getA());
System.out.println(bar.getA());
}
}
答案 0 :(得分:0)
您的代码中没有类变量。
如果您想要一个类变量,请使用static int a
。当然,您无法使用this.a
引用类变量:它只适用于实例变量。
当然,你不能拥有一个类变量和一个具有相同名称的实例变量。
如果用局部变量覆盖类变量,(不好主意 - 不要这样做 - 大多数IDE会警告你)然后可以用Foobar.a