java如何访问对象数组的每个元素?
我正在创建一个对象数组,称为房间。
static Room [] rooms = new Room [3];
//populate the array.
rooms[0] = new Room ("Bedroom", "This is your bedroom." );
rooms[1] = new Room("Hallway", "This is the hallway of your house.");
//constructor
static String room = "";
static String descriptionOfTheRoom = "";
public Room ( String newRoom, String newDescriptionOfTheRoom ){
room = newRoom;
descriptionOfTheRoom = newDescriptionOfTheRoom;
}
// get room method
public String getRoom (){
return room;
}
// when I try to get the room.
System.out.println("Room" + r[i].getRoom() );
它向我打印最后添加到阵列的房间。所以总是在走廊上打印。 那么,我如何同时打印每个元素呢?每个元素还是访问
提前向大家表示感谢
# 1 楼答案
这是因为您创建了
descriptionOfTheRoom
和room
变量static
。它们应该是实例变量与实例变量不同,
static
成员在类的所有实例之间共享。这些成员几乎不应该在构造函数中设置(有时您可能需要修改它们,但这并不太常见)您应该创建
room
和descriptionOfTheRoom
实例变量,即每个Room
对象一个。删除static
将解决此问题