这是否合法?

时间:2017-03-30 14:16:40

标签: java bluej

我刚刚开始编码而无法得到这个"加热器"反对的工作。它只是提示if else声明"它太热了"当试图给temp一个更高的值时,它在调用" colder"时不会停止/低于最小临时值。方法。感谢

public class Heater {
    private double temp;
    private double min;
    private double max;
    private double increment;

    public Heater(double min, double max) {
        temp = 15;
        increment = 5;
    }

    public void Warmer() {
        if(temp + increment <= max) {
            temp = temp + increment;
        } else if(temp + increment > max) {
            System.out.println("Too hot");
        }
    }

    public void Colder() {
        if(temp - increment >= min){
            temp = temp - increment;
        } else if (temp - increment < min){
            System.out.println("Too cold");
        }
    }

    public double getTemp() {
        return temp;
    }
}

2 个答案:

答案 0 :(得分:0)

您未在构造函数中设置minmax,因此默认情况下它们保持为0。试试这个:

public Heater(double min, double max) {
    this.min = min;
    this.max = max;
    temp = 15;
    increment = 5;
}

答案 1 :(得分:0)

  1. 您正在使用Caps作为方法名称。大写字母用于类名。
  2. 您没有设置min。它的值为零。
  3. 您不需要else if条件 - 只需使用else
  4.  public void colder() { // method name, make lower case.
        if(temp - increment >= min){
           temp = temp - increment;
        } else {
           System.out.println("Too cold");
        }
      }