我们正在使用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;。有没有人在代码中看到错误?
我们已经尝试了这个。高度和高度,但结果仍然是一样的。
提前致谢。
答案 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;
}