我们的setter中的if语句有问题

时间:2017-02-27 10:39:19

标签: java if-statement setter bluej

我们正在使用if语句创建一个setter。我们正在尝试限制批准的值,并使用打印方法打印出设置的值,或者"错误"如果不接受该值。

这是方法:

Public class Sykkel extends Kjøretøy
{

private int height;


public Sykkel(String colour)
{
    // initialise instance variables
    super(1, colour);
    this.height = height;
}

public void setHeight (int height) {
    if(height > 35 && height < 70){
        System.out.println("Sykkelen er " + height + " cm høy.");
    } else {
        System.out.println("Wrong");
    }
}

public int getHeight() {
    return height;
}

无论我们设定的高度是什么,它打印出来&#34;错误&#34;。有没有人在代码中看到错误?

我们已经尝试了这个。高度和高度,但结果仍然是一样的。

提前致谢。

2 个答案:

答案 0 :(得分:5)

我的观察。

你的构造函数应该是:

public Sykkel(String colour, int height)
{
    // initialise instance variables
    super(1, colour);
    this.height = height;
}

setHeight方法中,您需要为实例变量指定高度。

public void setHeight (int height) {
    if(height > 35 && height < 70){
        System.out.println("Sykkelen er " + height + " cm høy.");
    } else {
        System.out.println("Wrong");
    }
    // add the below line:
    this.height = height;
}

另一种方法似乎没问题。

当我致电setHeight(40);时,我正在

Sykkelen er 40 cm høy.

希望这有帮助!

答案 1 :(得分:0)

在setter方法中没有赋值,只需追加

  

this.height = height;

public void setHeight (int height) {
    if(height > 35 && height < 70){
        System.out.println("Sykkelen er " + height + " cm høy.");
    } else {
        System.out.println("Wrong");
    }
 this.height = height; 
}