Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';这个reserveSeat()方法不起作用吗?_Java - Fatal编程技术网

Java 为什么不是';这个reserveSeat()方法不起作用吗?

Java 为什么不是';这个reserveSeat()方法不起作用吗?,java,Java,我正在为我的班级做一个航空项目,将创造10个座位,他们有一个座位号,一个头等舱或一个长途汽车座位,并告诉他们是否是空的。首先,我必须创建一个座椅类,然后创建一个飞机类来存储10个座椅的数组。首先,我在做seat类,在我进入飞机类之前,我希望在构建飞机类之前,我的所有方法都能工作。但是我的一个方法有问题,reserveSeat()方法。所有的座位一开始都是空的。此方法将把座位从空改为保留 这是我到目前为止的代码 座位等级 public class Seat { private int s

我正在为我的班级做一个航空项目,将创造10个座位,他们有一个座位号,一个头等舱或一个长途汽车座位,并告诉他们是否是空的。首先,我必须创建一个
座椅
类,然后创建一个
飞机
类来存储10个座椅的数组。首先,我在做seat类,在我进入
飞机
类之前,我希望在构建
飞机
类之前,我的所有方法都能工作。但是我的一个方法有问题,
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()
方法时,它仍然会说座位是空的。这是为什么?

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


实际上,状态已经是一个布尔值,因此如果(状态)与如果(状态==true)

相同,因为您的
中缺少一个
=
符号(这样您就不用比较设置状态)。然而,这不是我的打字错误论坛,我认为这个问题不适合这里。

除了“论坛”的评论外,你的回答很好。@Makoto:你的评论100%很好,因为你有权发表自己的意见。依我拙见,这个问题太本地化了,我投票决定把它关闭……或者干脆
if(state)
而不是
if(state==true)
OMG谢谢!我感觉很好dumb@Hovercraft,是的,我在点击submit(在iPhone上键入以便编辑速度稍微慢一点)后就发现了这一点。我认为Java可以自动防止该错误?使用会使犯此错误变得更困难:)CS 101错误:您可以显式返回布尔值,无需使用if语句:)@从技术上讲,Makoto不是一个错误,但我同意这是一个拙劣的风格和反传统的风格-pattern@Bohemian更糟糕的是,OP使用的是
if(x=true)
,它总是
true
@borisespider哦,是的!这是一个反模式的经典例子。如果没有代码,就不会错。(我更喜欢它,因为它的代码要少得多,而代码越少越好是我的口头禅之一