我正在努力开发一个在线酒店预订系统。我有一个主要类,它从用户那里获取输入,例如他们的名字,他们的支付信息和其他数据字段,并使用该信息创建一个Reservation
对象。我有另一个名为Room
的类,每个Reservations
对象都有一个Room
列表。我遇到的问题是我无法想出一种方法将Reservation
对象添加到Room
对象的列表中。以下是一些代码:
public class HotelReservationSystem
{
private Reservation reservation;
public void makeReservation(int checkIn, int checkOut)//Other parameters
{
reservation = new Reservation(checkIn, checkOut);
}
}
public class Room
{
private ArrayList<Reservation> reservations;
public void addReservation(//parameters?)
{
reservations.add(//parameter?);
}
}
我不知道如何将新的Reservation
对象作为add
类中Room
方法的参数传递。
我无法绕过它,并希望有人帮我慢慢思考我的思维过程。
感谢您的帮助。
答案 0 :(得分:1)
让makeReservation返回创建的Reservation对象:
public Reservation makeReservation(int checkIn, int checkOut)//Other parameters
{
reservation = new Reservation(checkIn, checkOut);
return reservation;
}
(您还可以为reservation
)
然后像这样更改你的addReservation:
public void addReservation(Reservation res)
{
reservations.add(res);
}
然后就这样添加:
HotelReservationSystem hrs = new HotelReservationSystem();
Reservation res = hrs.makeReservation();
Room room = new Room();
room.addReservation(res);
但是,您可能需要重新考虑您的模型。现在,您的HotelReservationSystem
正在创建一个预订,只保存一个,覆盖旧的预留。如果您创建多个会发生什么?另外,如果给出HotelReservationSystem对象,您如何获得某个房间的预订?只是要考虑一些事情......
答案 1 :(得分:0)
我相信你一定试过这个
public void addReservation(Reservation reservation)
{
reservations.add(reservation);
}
但问题是您的列表reservations
为空并将抛出空指针异常。所以最好在声明时初始化它。所以改变这个
private ArrayList<Reservation> reservations;
到
private ArrayList<Reservation> reservations = new ArrayList<Reservation>();
在makeReservation
类的Hotel
方法中执行此操作:
Room room = new Room();
room.addReservation(reservation);