我收到错误:静态错误:此类没有接受String []的静态void main方法。控制台还告诉我它运行Guest。但是,我用带有main的酒店开始我的代码,所以我不明白为什么它从Guest开始。我用了一些类构造函数。据我所知,我不需要为每个班级都有一个构造函数。
这是我的代码:
c
答案 0 :(得分:1)
实际上即使你这样写了也可以运行。好的做法是将单独的类保存在单独的文件中。 Java实际上不允许您在单个文件中拥有多个公共类。但是你写它们的方式并不公开,所以你很好(我不是说这是好方法)。
如果您按javac yourfile.java
编译程序,您会注意到您获得了多个类文件(该文件中定义的每个类一个),然后您可以使用类名称java Hotel
运行您的程序如果酒店不是公共课!将它公开并将其他文件保存在单独的文件中仍然会更好。
除了运行程序外,还会出现空指针异常,因为在这一行中:
rooms[i].newGuest(); // rooms[i] is null and you can't call its method
尝试将构造函数更改为:
Hotel(int b){
rooms = new Room[b];
for(int i=0; i<b; i++) {
rooms[i]=new Room(); //Create the rooms
}
}
这样我们为客人准备房间:)