gpt4 book ai didi

java - 通过循环创建多个同名对象

转载 作者:行者123 更新时间:2023-12-02 06:55:46 26 4
gpt4 key购买 nike

我正在尝试在另一个名为 TextGame 的类中创建并使用名为 Room 的类的多个实例。 TextGame 类有一个名为 numRooms 的实例变量,循环的 boolean 表达式以该实例变量结束。我遇到的唯一问题是循环创建一个与上一个同名的对象。我不确定这是否会覆盖该对象,从而导致循环末尾仅产生一个对象。

这是包含循环的方法:

public void makeRooms(){
Scanner keyboard = new Scanner(System.in);
for(int i = 0; i < numRooms; i++){
System.out.println("What riddle do you want in Room " + (i+1) + "?");
String riddle = keyboard.nextLine();
System.out.println("What is the answer for that riddle?");
String answer = keyboard.nextLine();
Room room = new Room(riddle, answer);
}
}

有没有办法可以根据每次迭代时的 i 值来命名 Room 对象?

最佳答案

解决方案是使用简单的数组。在这种情况下,这会更容易,因为您知道房间的数量。

Room[] roomArray=new Room[numRooms]; //This happens outside the for loop

然后在 for 循环中,将以 Room room=new Room(... 开头的行更改为:

room[i]=new Room(riddle, answer);

请注意,您的循环必须以 0 开头,这里也是如此。

另一个解决方案是使用 ArrayList。如果您不知道要添加多少个房间,这有点困难,但更灵活。

ArrayList<Room> rooms=new ArrayList<>(); //The brackets refer to generics

然后,在 for 循环中添加:

rooms.add(room);

关于java - 通过循环创建多个同名对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17385645/

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