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

r0m*_*0m1 -1 java setter if-statement bluej

我们用if语句创建一个setter.我们试图限制批准的值,并使用print方法打印出设置的值,如果不接受该值,则使用"错误".

这是方法:

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;
}
Run Code Online (Sandbox Code Playgroud)

无论我们设置什么高度,它打印出"错误".有没有人在代码中看到错误?

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

提前致谢.

ana*_*ron 5

我的观察.

你的构造函数应该是:

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

在您的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;
}
Run Code Online (Sandbox Code Playgroud)

另一种方法似乎没问题.

当我打电话时setHeight(40);,我正在接受

Sykkelen er 40 cm høy.
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!