我试图使用剧院类的真实示例来理解收集框架,其中包含一个名为seat ..的内部类。
因为有了代码,所以我开始创建自己的代码,但是我陷入了困境,然后参考了提供给我的代码。该代码是创建一个Java程序,该程序可用于预订剧院的座位。
private boolean reservedSeat=false;
private Boolean reserve(){
if(!reservedSeat){
reservedSeat=true;
System.out.println("Seat "+seatNumber+" is reserved.");
return true;
}
else
return false;
}
此代码用于在剧院保留座位。该代码在内部类Seat中定义。我不明白这个if陈述是什么意思 (!reservedSeat),reservedSeat已被初始化为false !reservedSeat等于true,但是if块语句中的以下各行再次设置了reservedSeat = true,因此此代码中实际发生的情况。 我想到这个if语句表示如果reservedSeat为true,即seat为reserved,请将reservedSeat设置为true。但是我知道那是胡言乱语。请帮助我了解其实际要说的基本概念。
答案 0 :(得分:0)
这是一个非常典型的构造。
代码检查座位是否尚未预留(if (!reserved)
)
如果该检查成功,则保留座位(reservedSeat = true
)
并返回true
,作为呼叫者预订座位成功的信号。
如果第一次检查不成功,即座位已被预订,则该方法仅返回false
,表示预订该座位的尝试失败。
我建议扭转这种状况,这样一来就可以减少一种否定:
private boolean reservedSeat=false;
private Boolean reserve() {
if(reservedSeat) {
return false;
} else {
reservedSeat=true;
System.out.println("Seat "+seatNumber+" is reserved.");
return true;
}
}