【发布时间】:2022-01-19 02:57:12
【问题描述】:
我目前正在编写一个酒店游戏,我的酒店房间有自己的房间号。在第一个 for 循环中,我正在调用 addRoom 函数并打印酒店房间的房间号。我得到的结果是
Test 1- Room Number: 1
Test 1- Room Number: 2
Test 1- Room Number: 3
然后在第二个 for 循环中我得到的结果是
Test 2- Room Number: 3
Test 2- Room Number: 3
Test 2- Room Number: 3
代码:
for (int i = 0; i < 3; i++) {
addRoom(0);
System.out.println("Test 1- Room Number: " + hotelRooms.get(i).getNum());
}
for (int i = 0; i < 3; i++) {
System.out.println("Test 2- Room Number: " + hotelRooms.get(i).getNum());
}
这些循环彼此相邻,所以我不确定它们为什么要打印不同的东西。这是我的 addRoom 函数。
public void addRoom(int i){
hotelRooms.add(allRooms.get(i));
System.out.println(hotelRooms.size());
hotelRooms.get(hotelRooms.size()-1).setNum(hotelRooms.size());
funds -= allRooms.get(i).getBuyCost();
moneyInfo.setText("$" + funds);
hotelInfo.setText("Rooms: " + hotelRooms.size() + "\nAmenities: " + hotelAmenities.size() + "\nCustomers: " + customers.size());
System.out.println("function end");
}
这是我的 Room 课程。
public Rooms(String t, int p, int m, int b, int l){
type = t;
occupied = false;
price = p;
monthlyCost = m;
buyCost = b;
level = l;
messy = 0;
}
public int getNum(){
return num;
}
public void setNum(int n){
this.num = n;
}
【问题讨论】:
-
可能是一个静态字段。显示您的完整代码。
-
hotelRooms中的所有条目都包含相同的实例,allRooms.get(0)。 -
是的,请出示您的代码。几乎可以肯定
Rooms正在使用一些静态字段。 -
这个问题与两小时前的the one you posted 有何不同?
标签: java class properties