Java 为什么不是';这个reserveSeat()方法不起作用吗?
我正在为我的班级做一个航空项目,将创造10个座位,他们有一个座位号,一个头等舱或一个长途汽车座位,并告诉他们是否是空的。首先,我必须创建一个Java 为什么不是';这个reserveSeat()方法不起作用吗?,java,Java,我正在为我的班级做一个航空项目,将创造10个座位,他们有一个座位号,一个头等舱或一个长途汽车座位,并告诉他们是否是空的。首先,我必须创建一个座椅类,然后创建一个飞机类来存储10个座椅的数组。首先,我在做seat类,在我进入飞机类之前,我希望在构建飞机类之前,我的所有方法都能工作。但是我的一个方法有问题,reserveSeat()方法。所有的座位一开始都是空的。此方法将把座位从空改为保留 这是我到目前为止的代码 座位等级 public class Seat { private int s
座椅
类,然后创建一个飞机
类来存储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哦,是的!这是一个反模式的经典例子。如果没有代码,就不会错。(我更喜欢它,因为它的代码要少得多,而代码越少越好是我的口头禅之一