Mam problem z tablicą przechowującą obiekty typu Room zdefiniowane w osobnym pliku.
Nie wiem dlaczego, ale tablica ma długość 0 a nie capacity.
Błąd wyjścia poza tablicę, ten sam błąd miałem z ArrayList (Null Pointer )
Proszę również o pomoc w zamianie zwykłej tablicy na ArrayList.
import java.util.*;
public class Hotel {
public Hotel(String name, int capacity){
this.name = new String(name);
rooms_count = 0;
this.capacity = capacity;
Room rooms[] = new Room[capacity];
}
public void capacity(){
System.out.println("Ilosc zdefiniowanych pokoi " + rooms_count );
System.out.println("Maksymalna ilosc pokoi " + capacity);
}
public void showHotel(){
System.out.println("Nazwa hotelu: " + name);
System.out.println("Ilość pokoi: " + rooms_count);
for (int i = 0; i<rooms_count; i++){
rooms[i].ShowRoom();
}
}
public void addRoom(int nr, int beds){
if(rooms.length > rooms_count){
Room r = new Room(nr,beds);
rooms[rooms_count] = r;
rooms_count++;
}
else{
System.out.println("Nie mozna utworzyc dodatkowego pokoju");
}
}
protected String name;
protected int rooms_count;
protected int capacity;
Room rooms[];
}
Plik Room
public class Room{
public Room(int nr, int beds){
this.nr = nr;
this.beds = beds;
}
public void ShowRoom(){
System.out.println("Pokoj nr " + nr);
System.out.println("Ilosc lozek " + beds);
}
protected int nr;
protected int beds;
}
Plik Test
public class Test {
public static void main(String [] args){
Hotel hotel1 = new Hotel("Hotel 1" , 10);
hotel1.showHotel();
hotel1.capacity();
hotel1.addRoom(1,3);
}
}