返回0

时间:2016-05-26 20:30:52

标签: java

我在这里摸不着头......

问题: 我正在做一个基本的方法来计算两个对象字段并返回一个值。由于某种原因,它返回一个空值。我知道我忽略了一些非常简单的东西,但它正在踢我的屁股。

代码:

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();
  }
}

1 个答案:

答案 0 :(得分:2)

(this.age / this.eol)为零,因为整数除法向下舍入。