2014-02-05 110 views
0

如何將對象插入數組?在這裏我有一個名爲HotelRoom的類,它包含getter,setter和構造函數方法。如何將對象插入數組?

public class HotelRoom { 

int roomNumber; 
String roomGuest; 


public HotelRoom (int room, String guest) { 
    roomNumber = room; 
    roomGuest = guest; 
} 

public int getRoom() { 
    return roomNumber; 
} 

public void setRoom() { 
    roomNumber = room; 
} 

public String getName() { 
    return roomGuest; 
} 

public void setName() { 
    roomGuest = guest; 
} 

而在這裏,我有主要方法包含數組初始值設定項和對象。我也將這些對象插入到數組中,但是在編譯時,問題出現在print命令中,它指出:「找不到符號 - 變量HotelRoom」。我究竟做錯了什麼?

public class Hotel { 
    public static void main (String [] args) { 
    HotelRoom[] rooms = new HotelRoom [5]; 

    HotelRoom guest1 = new HotelRoom(67, "Harry"); 
    HotelRoom guest2 = new HotelRoom(98, "Bob"); 
    HotelRoom guest3 = new HotelRoom(34, "Steven"); 
    HotelRoom guest4 = new HotelRoom(99, "Larry"); 
    HotelRoom guest5 = new HotelRoom(103, "Patrick"); 

    rooms[0] = guest1; 
    rooms[1] = guest2; 
    rooms[2] = guest3; 
    rooms[3] = guest4; 
    rooms[4] = guest5; 

    System.out.println (HotelRoom); 
} 

}

+4

您應該打印'rooms'。 –

+0

System.out.println(房間) – sadhu

回答

4

這是因爲HotelRoom是一類,而不是一個Object。如果您有打印出所有的房間的意圖,也許你可以嘗試這樣的:

for(final HotelRoom room : rooms) 
    System.out.printf("%s in room %d\n", room.getName(), room.getRoom()); 

或者你可以覆蓋HotelRoomtoString()方法:

public String toString(){ 
    return String.format("%s in room %d", roomGuest, roomNumber); 
} 

隨着覆蓋toString()方法,你現在可以修改你的循環到:

for(final HotelRoom room : rooms) 
    System.out.println(room); 

或者,如果你想:

System.out.println(Arrays.toString(rooms)); 
0

HotelRoom是類的名稱。這些對象現在位於房間數組中。如果你想打印出數組,嘗試打印室,或在陣列中的特定位置,如

System.out.println(rooms[0].getName()); 
0

同時在HotelRoom第一實施toString()

public String toString() { 
    return roomNumber + " " + roomGuest; 
} 

,然後打印權array:

System.out.println(Arrays.toString(rooms));