为什么这个reserveSeat()方法不起作用?

时间:2013-05-11 23:46:33

标签: java

我正在为我的班级做一个航空公司项目,它将创建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()方法时,它仍然说座位是空的。那是为什么?

2 个答案:

答案 0 :(得分:5)

您正在if语句中执行赋值(在toString()函数内)。您的意思是使用if (state == true)而不是if (state = true)

实际上状态是布尔值,因此if (state)if (state == true)

相同

答案 1 :(得分:0)

因为您在=中遗漏了一个if符号(所以不要比较您设置状态)。然而,这不是Spot-My-Typo论坛,在我看来这个问题不适合这里。