Я почесал голову здесь ...метод класса возвращения 0
Проблема: Я делаю основной метод для расчета два поля объекта и возвращает значение. По какой-то причине он возвращает нулевое значение. Я знаю, что я пропускаю что-то невероятно простое, но это удар ногой.
Код:
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 = возраст/EOL * 100, чтобы получить процент. Я отследил проблему до моего метода lifeLeft(). По какой-то причине он не получает возраст и эл объекта. Я выполнил тест System.out.println (age, eol) и т. Д., И значения переменных отражают 0.
Sidenote: Я вызываю 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();
}
}
целочисленное деление –