gpt4 book ai didi

java - 如何创建一个类的多个实例?

转载 作者:行者123 更新时间:2023-12-02 05:11:43 25 4
gpt4 key购买 nike

我有一个类 Borrower,它由一个名称组成,然后它还存储一个数组列表,其中包含该人借用的项目。

我希望能够从我的主类创建此类的多个实例,然后能够访问它们以查看他们借用的项目。

我无法理解如何创建多个实例。我只是不断遇到覆盖借用类的问题。

因此,在下面的代码中,如果我创建 newBorrower("Tim"),然后 addItem("Wrench"),然后去创建 newBorrower("john"),那么我会覆盖 newBorrower。

我希望能够根据用户输入创建多个 Borrower 实例?

我尝试保存整个 Borrower 类。我不确定这是否有效,因为它不会排序,所以我无法添加多个名称,否则会出现错误。

借款人类别

public class Borrower 
{

protected String name;
protected String item;

ArrayList<String> itemList = new ArrayList<String>();

public Borrower()
{
}

public Borrower(String name)
{
this.name = name;
}

public String getName()
{
return name;
}

public void addItem(String item)
{
this.item = item;
itemList.add(item);
}

主类

public class WhoBorrowedIt 
{

public static void main(String[] args)
{
ArraySortedList<String> borrowersList = new ArraySortedList<String>();
Borrower newBorrower = new Borrower();
Borrower otherBorrower = new Borrower();

Scanner inName = new Scanner(System.in);
Scanner inItem = new Scanner(System.in);

String item;
String name;

String menu;
int option;

menu = "Make a selection: " + "\n"
+ "1. Add Borrower" + "\n"
+ "2. Add Item Borrowed" + "\n"
+ "3. Remove Item Returned" + "\n"
+ "4. View Borrowers" + "\n"
+ "5. Exit";

do
{
Scanner in = new Scanner(System.in);
System.out.println(menu);
option = in.nextInt();

switch(option)
{
case 1: //create borrower
{
System.out.println("Enter Name");
name = inName.nextLine();
newBorrower = new Borrower(name);
borrowersList.add(newBorrower.getName());
break;
}

case 2: //add items
{
System.out.println("Enter item");
item = inItem.nextLine();
System.out.println("Who is borrowing");
name = inName.nextLine();
if(borrowersList.contains(name))
{
newBorrower.addItem(item);
}
else
{
newBorrower = new Borrower(name);
borrowersList.add(newBorrower.getName());
newBorrower.addItem(item);
}
}
}while(option != 5)
}
}

最佳答案

使用这样的 map

if (borrowersMap.containsKey(name))
{
borrowersMap.get(name).addItem(item)
}
else
{
newBorrower = new Borrower(name);
borrowersMap.put(newBorrower.getName(), newBorrower);
newBorrower.addItem(item);
}

其中 borrowersMap 是一个 HashMap

Map<String, Borrower> borrowersMap = new HashMap<String, Borrower>();

关于java - 如何创建一个类的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com