setter 中的 if 语句有问题

There is something wrong with the if-statement in our setter

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

这是方法:

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

无论我们设置什么高度它都会打印出来"Wrong"。有人看到代码中的错误了吗?

我们已经尝试了 this.height 和高度,但结果仍然相同。

提前致谢。

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

我的观察。

你的构造函数应该是:

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.

希望对您有所帮助!