不想要任何代码,只想要某种指导。想保持我的学术诚信机智;)
我一直收到这个烦人的错误。我需要为每个房间示例调用toString方法。有什么建议吗?如果可能的话,我希望在2小时内得到答案。
public class Hotel
{
//constant
public static final int NUM_ROOMS = 20;
//variables
public Room[] theRoom;
public String name;
public int totalDays;
public double totalRate;
public int singleCount;
public int doubleCount;
public int roomsRented;
public int NOT_FOUND;
public Hotel(String newName) {
name = newName;
Room[] Rooms = new Room[NUM_ROOMS];
}
public double getTotalRentalSales() {
return totalRate + roomsRented;
}
public double getAvgDays() {
return roomsRented/totalDays;
}
public double getAvgRate() {
return totalRate/roomsRented;
}
public int getSingleCount() {
return singleCount;
}
public int getDoubleCount() {
return doubleCount;
}
public String printRentalList() {
System.out.println("Room Information: " + Room.toString());
}
}
6条答案
按热度按时间44u64gxh1#
你不应该尝试在Room类上调用
toString()
,而应该在Room * 对象 * 上调用x1m0 n1 a。在该方法中,用for循环遍历房间数组,并打印通过为数组中的每个Room对象调用toString()
返回的String,因为这看起来是你的方法应该做的事情。例如
显然,您必须更改代码的类型和变量名。
编辑2:尽管你必须使用标准的for循环,而不是for-each循环,因为你不会循环整个数组,而是在达到roomsRented计数时退出。
zhte4eai2#
由于错误已经声明,不要在静态上下文中调用示例方法.
Room是一个类,而不是一个对象。toString是一个示例方法。因此,在本例中,Room.toString()编译器会查找一个静态方法toString。但toString是一个示例方法,因此会导致问题。
永远记住示例方法是用类的对象调用的,而不是用类本身。
vnjpjtjt3#
你可能正在做的是在类Room上调用
toString()
,而不是它的一个示例。写:
5f0d552i4#
看看下面的代码,你可以用一个静态变量编译toString而不用新的对象,它只是在运行时抛出异常
dzhpxtsq5#
当你写数组的时候,在这一行会出现一个下拉菜单,你会看到默认的包或者
java.util
包,你需要选择java.util
包,问题就解决了。a7qyws3x6#
当你调用classname.method()时,意味着你调用的是一个静态方法。我们使用类名来调用静态方法。
这里的类是:房间
方法为:toString()
toString()不是使用类名调用的静态方法。
toString()是Object类的方法。
因此,您应该使用room.toString(),其中“room”是Room类的对象