3つのオブジェクトを持つプログラムを作成しようとしています。ホテル、部屋、ベッド。オブジェクトベッドはベッドに関する情報を保持します。オブジェクトルームには、ベッドの数など、部屋に関する情報が保存されます。オブジェクトホテルには、それに含まれるルーム数に関する情報が含まれます。他のオブジェクト内でオブジェクト配列の長さを宣言する方法
ホテルクラスのための私のコードは、この
public class Hotel {
private String name;
private boolean HasVacency = false;
public int numberOfRooms;
Room[] rooms = new Room[numberOfRooms + 1];
public Hotel() {
}
public void setRoom(int numberOfRooms) {
this.numberOfRooms = numberOfRooms;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
のように見えると私は入れませんが、私はホテルを作成し、値を宣言したテストクラスのコードは、この
public static void main(String[] args) {
HotelTest t = new HotelTest();
t.getHotelInfo();
}
public void getHotelInfo() {
Hotel test = new Hotel();
int numberOfRooms;
int numberOfBeds;
String size;
Scanner input = new Scanner(System.in);
System.out.println("what is the name of the hotel");
String name = input.next();
test.setName(name);
System.out.println("how many rooms does the hotel have");
numberOfRooms = input.nextInt();
test.setRoom(numberOfRooms);
System.out.println(test.rooms.length);
for(int i = 0; i< test.numberOfRooms + 1; i++) {
System.out.println("how many beds does room " + (i + 1) + " have");
numberOfBeds = input.nextInt();
System.out.println(i);
test.rooms[i].setNumberOfBeds(numberOfBeds);
}
}
のように見えますテスト中の部屋数の値を設定しようとするとnullポインタが返されます。厄介なコードに申し訳ありません