所以我正在写一个程序,当一个名为Floor的变量超过topFloor时,它会重置回1,或者当它低于0时,它也会重置回1。我对Java很陌生,刚刚开始学习构造函数,所以希望能得到一些帮助。
下面是构造函数和方法的代码:
private final int topFloor = 17;
int goToFloor;
private int floor = 1;
//change floor to 1 if over or under
Elevator(int floor){
this.floor = floor;
if(floor < 0) {
floor = 1;
}
if (floor > topFloor) {
floor = 1;
}
}
//go to floors.
public void goToFloor(int floor) {
this.floor = floor;
if (floor > topFloor) {
System.out.println("Error, Too High!");
}
if (floor < 0) {
System.out.println("Error, Impossible Floor!");
}
}
@Override
public String toString() {
String s = " Floor = " + floor;
return s;
}
下面是我在一个单独的类中打印出该方法的代码:
Elevator southElevator = new Elevator();
Elevator eastElevator = new Elevator();
//go to too big
southElevator.closeDoor();
southElevator.goToFloor(92);
System.out.println(southElevator.toString());
//go to a negative number
southElevator.goToFloor(-8);
System.out.println(southElevator.toString());
下面是我得到的输出:
Error, Too High!
Floor = 92
Error, Impossible Floor!
Floor = -8
这是我所有的代码,我想它可能与构造函数有关,但我不知道如何修复它。任何帮助将不胜感激。
1条答案
按热度按时间yzuktlbb1#
在构造函数中更改
floor
时,只更改了floor
参数的值,而不是示例字段(this.floor
)。在构造函数的最后一行设置this.floor = floor;
,这样它的值将根据修改后的floor
参数值设置。对于
goToFloor
方法,应该对每个错误条件执行重置。仅当参数值有效时才将值设置为参数值。构造函数无法帮助执行此操作,因为示例已经创建。