簡體   English   中英

在ArrayList中列出對象的參數

[英]Listing Parameters of an Object in an ArrayList

我正在嘗試創建一種方法來列出ArrayList中的元素,但是該方法僅返回最新對象的值:

物體:

//Constructor for guests at the hotel
public Guest (String name, String checkinDate, String checkoutDate, double depAmt)
{
    gstName = name;
    checkIn = checkinDate;
    checkOut = checkoutDate;
    deposit = depAmt;
}

ArrayList中的當前對象:

//Fills the roster with three guests to start the program
public static void fillGuest()
{
    Guest guest1 = new Guest("Mike P.", "2/13/16", "2/23/16", 360.00);
    guestList.add(guest1);
    Guest guest2 = new Guest("Randall M.", "4/10/16", "4/17/16", 120.00);
    guestList.add(guest2);
    Guest guest3 = new Guest("Bo-Diddly.", "4/20/16", "4/23/16", 600.00);
    guestList.add(guest3);
}

列出ArrayList中對象的方法:

public static void returnGuests()
{
    System.out.println("Currently checked in "  + guestList.size() + " guests:");
    for (int i = 0; i <= guestList.size() - 1; i++)
    {
        System.out.println(guestList.get(i));
    }
}

輸出:

Currently checked in 3 guests:
Bo-Diddly. 4/20/16 4/23/16 600.0
Bo-Diddly. 4/20/16 4/23/16 600.0
Bo-Diddly. 4/20/16 4/23/16 600.0

Enter command:

如何顯示每個Guest對象的各個對象參數?

您的Guest對象應如下所示。 請注意在字段上缺少static修飾符。 另外,請注意this關鍵字的使用。 如果將其與static變量一起使用,則您的IDE應警告您將其解釋為MyClass.var而不是this.var

您的問題是,在創建新的Guest對象時,所有Guest對象都將具有最后一組變量。 您需要使用“實例”變量而不是“類”變量。

如果您想閱讀有關靜態“類”變量的更多信息,請參見了解類成員

public class Guest {

    String gstName, checkIn, checkOut;
    double deposit;

    public Guest (String name, String checkinDate, String checkoutDate, double depAmt)
    {
        this.gstName = name;
        this.checkIn = checkinDate;
        this.checkOut = checkoutDate;
        this.deposit = depAmt;
    }
}

暫無
暫無

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

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