这个问题在这里已有答案:
我想了解getter方法。
在我的第一堂课中,我有一个get方法和一个参数。
在第二节课中,我用参数创建了一个新对象。现在我想用getter方法打印出这个值,但控制台是打印0而不是23?
这是我的代码
头等舱:
public class CopyOfHeld {
private int LP;
public CopyOfHeld(int pLP) {
pLP = LP;
}
public int getLp() {
return LP;
}
}
和二等:
public class CopyOfKampfregel {
public CopyOfKampfregel() {
CopyOfHeld held1 = new CopyOfHeld(23);
System.out.println(held1.getLp());
}
}
它打印0的原因与您分配传递给值的构造函数的方式有关。
当您创建一个新的CopyOfHeld
对象时,您传入一个原始的int
值,您尝试以这种方式分配:pLP = LP;
。
问题是,不是将实际传入的值分配给实例字段,就像LP = pLP;
那样,你做的恰恰相反,因此分配了LP
字段。由于这是一个原始的int
,它的默认值是0,因此当你试图打印出来时,为什么你得到0。
更改分配并修复它将解决此问题。