免责声明:这是作业
你好,
目标:创建一个有不同房间的公寓/公寓,可以由一个人(租客)租用。我可以让新租户(如果有空闲房间)并在他们想离开时删除租户。
我有的:
我创建了一个名为 Flat with rooms 的自定义数组。
首先,我创建了一个数组(没有 ArrayList,因为我事先知道数组的大小)
Flat(int a) {
rooms = new Room[a];
for (int i = 0; i < rooms.length; i++) {
rooms[i] = new Room();
}
}
其次,我在房间中添加了一个 Renter 对象,起初这些对象将为 NULL,因为我想检查房间是否为空。
public class Room {
renter Renter;
Room() {
renter = null;
}
}
所以,现在我有一个数组,其中包含设置为 null 的租户对象的房间。
第二部分:
我有一个班级叫Renter。
承租人必须由姓名和姓氏组成。这些数据将使用扫描仪类填充。我的租客类如下所示:
public Class Renter {
private String name;
private String lastName;
public void setName(String name) {
this.name = name;
}
public void setName(String lastName) {
this.lastName = lastName;
}
好的,到目前为止一切顺利:
现在,如果有可用的房间,我想将租户添加到房间。
所以在我的 Flat 类中,我有一个 newRenter 方法,如下所示:
void newRenter() {
(if freeRooms > 0) {
for (int i = 0; i < rooms.length; i++) {
if (rooms[i].renter == null) {
rooms[i].renter = new Renter();
}
}
} else {
System.out.println("No rooms available");
}
现在,是我迷路的部分。我不知道如何使用扫描仪类用数据填充这个新制作的租户对象。
我的解决方案不起作用
感觉我应该以“其他方式”来做这件事。首先创建一个空对象,然后用正确的数据填充这些对象。
例如,在我的租户类中,我可以有以下构造函数:
Renter() {
name = "";
lastname = "";
}
我想用正确的数据填充这个值。所以我想我会创建二传手。
public void setName(String name) {
this.name = name;
}
public void setLastname(String lastname) {
this.lastname = lastname;
然后在我与用户交互的课堂上,我将使用扫描仪类并用正确的信息填充这些设置器:
public class userInput() {
String name;
String lastname;
public static String retrieveInput() {
Scanner input = new Scanner(System.in);
if (input.hasNextLine()) {
}
return input.nextLine();
}
public static void retrieveNameRenter() {
System.out.println("Please give your firstname:");
name = userInput();
System.out.println("Please give your lastname:");
lastname = userInput();
//GIVE THE SETTERS MY INFO
Renter.setLastname(lastname);
Renter.setname(name);
我遇到的问题主要是因为我想用静态方法(retrieveNameRenter)设置对象(非静态)的值。
现在我的问题:
1)我的解决方案有意义吗?
2)如果是这样,我该如何解决这些错误(我尝试了很多,不同的,类,公共,私人等等等)
error: non-static method setLastname(String) cannot be referenced from a static context
Renter.setLastname(lastname);