-3

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

4

2 回答 2

5

您正在 if 语句内(在 toString() 函数内)进行赋值。你的意思是使用if (state == true)not if (state = true)

实际上 state 已经是一个布尔值,所以if (state)if (state == true)

于 2013-05-11T23:50:37.590 回答
0

因为你在你的(所以而不是比较你设置状态)中缺少一个=标志。if尽管如此,这不是一个 Spot-My-Typo 论坛,我认为这个问题不适合这里。

于 2013-05-11T23:51:24.900 回答