我正在为我的班级做一个航空公司项目,它将创建10个座位,他们有一个座位号码,头等舱或教练座位,并说明它是否为空。首先,我必须创建一个Seat
类,然后创建一个Airplane
类来存储一个包含10个席位的数组。首先,我正在做座位课,在进入Airplane
课之前,我希望在构建Airplane
类之前我的所有方法都能正常工作。但是我的一个方法reserveSeat()
方法存在问题。所有座位都空着。此方法会将座位从空更改为保留。
到目前为止,这是我的代码,
座位等级
public class Seat {
private int seatNum;
private String seatType;
private boolean state;
public Seat(int seatNum, String seatType)
{
this.seatType = seatType;
this.seatNum = seatNum;
this.state = true;
}
public int getSeatNum()
{
return seatNum;
}
public String getSeatType()
{
return seatType;
}
public void reserveSeat()
{
state= false;
}
public void cancelSeat()
{
state = true;
}
public String toString()
{
String str;
String str2;
if (state=true)
str= "empty";
else
str = "reserved";
str2 = seatNum + " \t" + seatType + " \t" + str;
return str2;
}
public boolean isSeatEmpty() {
if (state == true)
return true;
return state;
}
}
申请类:
package proj6;
public class Project6 {
public static void main(String[] args)
{
// Instiating a seat object with the seat number and the type of seat.
Seat theSeat = new Seat(11, "Coach");
System.out.println(theSeat.toString());
}
}
当我第一次输出座位时,它会输出“11 Coach empty”,这是正确的。但是当我调用reserveSeat()
方法时,它仍然说座位是空的。那是为什么?
答案 0 :(得分:5)
您正在if语句中执行赋值(在toString()函数内)。您的意思是使用if (state == true)
而不是if (state = true)
。
实际上状态是布尔值,因此if (state)
与if (state == true)
答案 1 :(得分:0)
因为您在=
中遗漏了一个if
符号(所以不要比较您设置状态)。然而,这不是Spot-My-Typo论坛,在我看来这个问题不适合这里。