【发布时间】:2020-03-01 06:41:05
【问题描述】:
我正在为剧院预订系统开发一个控制台应用程序,并将记录保存在一个文件中。当我尝试显示座位详细信息时,它以不同的顺序显示。我正在使用静态块来初始化数据。
public class WestBelcony extends Seat {
public final static double price = 40;
private static List<Seat> listSeat;
static {
System.out.println("Here");
listSeat = new ArrayList<Seat>();
for (int i = 1; i <= 10; i++) {
listSeat.add(new Seat().setId("wb" + i));
}
}
public List<Seat> getListSeat() {
return listSeat;
}
public void updateSeatBooking(String seatNo, boolean status ) {
for (int i = 0; i < listSeat.size(); i++) {
if (listSeat.get(i).getId().contains(seatNo)) {
listSeat.get(i).setBooked(status);
}
}
}
public void getSeatDetails(String seatNo) {
for (Seat seat : listSeat) {
if (seat.getId().contains(seatNo)) {
System.out.println("Seat Id : " + seat.getId() + " IsBooked : " + seat.isBooked());
}
}
}
public void showReservationDetails() {
for (Seat seat : listSeat) {
System.out.print("Seat No : " + seat.getId() + " ");
if(!seat.isBooked()) {
System.out.println("\u001B[32m"+"Available");
System.out.print("\u001B[0m");
} else {
System.err.println("Booked");
}
}
}
public static Seat getSeat(String id) {
for (Seat seat : listSeat) {
if(seat.getId().contains(id))
return seat;
}
return null;
}
}
这就是我调用方法的方式
WestBelcony eb = new WestBelcony();
wb.showReservationDetails();
这样显示
Seat No : wb1 Booked
BookedSeat No : wb2 Seat No : wb3 Seat No : wb4 Available
Seat No : wb5 Available
Seat No : wb6 Seat No : wb7 Available
Seat No : wb8 Available
Seat No : wb9 Available
Seat No : wb10 How many seats do you want to book?
Booked
Booked
Booked
这段代码有什么问题?
【问题讨论】:
-
预期输出是什么?
-
座位号:wb1 预定座位号:wb2 预定座位号:wb3 预定座位号:wb4 可用座位号:wb5 可用座位号:wb6 预定座位号:wb7 可用座位号:wb8 可用座位号: wb9 可用座位号 : wb10 已预订