如何访问对象数组的每个元素?

时间:2014-04-27 01:37:49

标签: java arrays oop

我正在创建一个名为rooms的对象数组。 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 个答案:

答案 0 :(得分:1)

这是因为您制作了descriptionOfTheRoomroom变量static。它们应该是实例变量。

与实例变量不同,static成员在类的所有实例之间共享。这些成员几乎从不在构造函数中设置(有时您可能需要修改它们,但这并不常见)。

您应该生成roomdescriptionOfTheRoom个实例变量,即每Room个对象一个。删除static将解决此问题。