您能解释一下这种奇怪的行为吗?
public class Car {
private int wheels;
public Car(int wheels) {
System.out.println("Before: " + wheels); // prints 3 before initialisation
this.wheels = wheels;
System.out.println("After: " + wheels); // prints 3
}
public static void main(String[] args) {
Car car = new Car(3);
}
}
如果运行此代码,则它将打印两次
3
,而不是0
,然后在初始化wheels
,3
字段之后,才打印两次。 最佳答案
因为在不使用wheels
关键字引用this
时,您所引用的参数显然是3。
将行更改为
System.out.println("Before: " + this.wheels);
或更改参数名称。