我已经玩了好几个小时了,改变了静态的、私有的、公共的等等 :) 但它仍然行不通。如果我在一个地方更改静态,我会在另一个地方收到错误等。
我有一个班级叫人。我使用了非静态 Setter,因为Person()
构造函数也是非静态的。
public class Person {
private String name;
private String lastname;
private String nickname;
Person() {
this.name = "";
this.lastname = "";
this.nickname = "";
}
public void setName(String name) {
this.name = name;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
然后我有一个包含我的主要方法的文件,以及用于与用户交互的不同方法。这个方法也是静态的,因为它调用那些采用正在使用该类的 userInput 的方法Scanner
。
public class Interaction {
public static void takeName() {
String name;
String lastname;
String nickname;
System.out.println("What is your firstname:");
name = userInput(); // calls method with Scanner class
System.out.println("What is your lastname:");
lastname = userInput(); // calls method with Scanner class
System.out.println("What is your nickname:");
nickname = userInput();
person.setName(name);
person.setLastname(lastname);
person.setNickname(nickname);
}
//editor: missing closing bracket
我试过的:
- 我已经尝试过
Person.person.setname(name);
- 在 public 类中声明 String
Interaction
,然后使用 this.name 传递 String 并从 public 类中调用方法Interaction
- 试图改变静态、私有等。
- 删除类中的构造函数类
Person(
)Person
。
我在这里想念什么?
编辑:我已按照您的要求添加了更多信息:)
如果它通过 if 语句,我的新Person
对象将被声明。
如果有可用的位置,则将创建一个新人并将其添加到该位置。
public class Theater {
void reservationSystem () {
if (availability > 0) {
for (int i = 0; i < freespaces.length; i++) {
if (freespaces[i].person == null) {
freespaces[i].person = new Person();
break;
}
}
} else {
System.out.println("No tickets for you today :) ");
}
}
//editor: missing closing bracket
所以我的思路是:
Userinput()
我用来自使用类的数据填充构造函数Scanner
;- 然后我创建了新
Person
对象,因此它具有该数据! - 当我在预订系统中创建一个新
Person
的时,构造函数中的数据将再次填充数据,但现在使用新数据:)
如果您需要更多信息,请告诉我:)