如何在java中将在一个类中创建的对象传递给另一个类?

时间:2013-11-30 18:16:11

标签: java parameters parameter-passing

我正在努力开发一个在线酒店预订系统。我有一个主要类,它从用户那里获取输入,例如他们的名字,他们的支付信息和其他数据字段,并使用该信息创建一个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方法的参数传递。 我无法绕过它,并希望有人帮我慢慢思考我的思维过程。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

让makeReservation返回创建的Reservation对象:

 public Reservation makeReservation(int checkIn, int checkOut)//Other parameters
{
    reservation = new Reservation(checkIn, checkOut);
    return reservation;
}

(您还可以为reservation

创建一个getter

然后像这样更改你的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);