簡體   English   中英

如何在Java中將在一個類中創建的對象傳遞給另一個類?

[英]How do I pass an object created in one class to another in java?

我正在嘗試開發在線酒店預訂系統。 我有一個主類,它從用戶那里獲取輸入信息,例如他們的姓名,他們的付款信息和其他數據字段,並使用該信息創建一個Reservation對象。 我還有一個名為Room類,該類具有每個Room對象的Reservations列表。 我遇到的問題是我想不出一種方法來將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對象作為Room類中add方法的參數來傳遞。 我只是束手無策,希望有人能幫助我慢跑。

謝謝你的幫助。

讓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對象,如何獲得特定房間的預訂? 只是要考慮的一些事情...

我相信您一定已經嘗試過

public void addReservation(Reservation reservation)
{
    reservations.add(reservation);
}

但是這里的問題是您的列表reservations為空,並且將拋出空指針異常。 因此最好在聲明時將其初始化。 所以改變這個

private ArrayList<Reservation> reservations;

private ArrayList<Reservation> reservations = new ArrayList<Reservation>();

然后在Hotel類的makeReservation方法中執行以下操作:

Room room = new Room();
room.addReservation(reservation);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM