gpt4 book ai didi

java - 我有一个包含对象的数组,现在我想用字符串填充这些对象

转载 作者:行者123 更新时间:2023-11-29 06:36:57 25 4
gpt4 key购买 nike

免责声明:这是家庭作业

你好,

目标:创建一个有不同房间的公寓/公寓,可供一个人(承租人)租用。我可以结交新租客(如果有空房间),并在他们想离开时删除租客。

我有什么:

我创建了一个名为 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;
}
}

所以,现在我有一个数组,其中包含设置为空的承租人对象的房间。

第二部分:

我有一个名为 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;

然后在我与用户交互的类中,我将使用扫描仪类并用正确的信息填充这些 setter :

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) 如果是这样,我该如何解决这些错误(我已经尝试了很多,不同的,类的,公共(public)的,私有(private)的等等)

error: non-static method setLastname(String) cannot be referenced from a static context
Renter.setLastname(lastname);

最佳答案

您不能以 static 方式访问类实例方法,即仅使用类名。您需要创建类的实例来调用实例方法。这些是不正确的陈述:

Renter.setLastname(lastname);
Renter.setname(name);

使用 new 创建 Renter 类的实例,并使用该实例调用方法,如下所述:

Renter renter = new Renter();
renter.setLastname(lastname);
renter.setname(name);

在此处了解有关实例和类变量及方法的更多信息:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

关于java - 我有一个包含对象的数组,现在我想用字符串填充这些对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com