我在这里摸不着头......
问题: 我正在做一个基本的方法来计算两个对象字段并返回一个值。由于某种原因,它返回一个空值。我知道我忽略了一些非常简单的东西,但它正在踢我的屁股。
代码:
public class Tools {
// Instance variables
private String type;
private int age;
private int eol;
private Double lifeLeft;
// Constructor
public Tools(String type, int age, int eol) {
this.type = type;
this.age = age;
this.eol = eol;
}
public String toString() {
return type + " has reached " + lifeLeft() + "% of its life expectancy.";
}
public Double lifeLeft() {
lifeLeft = (double)((this.age / this.eol) * 100);
return lifeLeft;
}
}
我只是试图计算lifeLeft = age / eol * 100来获得一个百分比。我已将问题追溯到我的lifeLeft()方法。由于某种原因,它没有得到对象的年龄和eol。我做了一些System.out.println(age,eol)等测试,变量值反映为0.
旁注: 我从子类对象调用super.toString(),但我认为这不重要。
子类供参考,以防万一。
public class Wrench extends Tools {
// Instance variables
private Double capacity;
// Constructor
public Wrench(String type, int age, int eol, Double capacity) {
super(type, age, eol);
this.capacity = capacity;
}
public String toString() {
return "Your " + capacity + "\" " + super.toString();
}
}
答案 0 :(得分:2)
(this.age / this.eol)
为零,因为整数除法向下舍入。