Java 创建对象数组时遇到问题
嘿,伙计们,我正试图回到java。几年前在高中上过课。现在我正在做一个小项目,我想使用一个对象数组,但是我在初始化对象时遇到了一个问题。这是我现在所拥有的Java 创建对象数组时遇到问题,java,Java,嘿,伙计们,我正试图回到java。几年前在高中上过课。现在我正在做一个小项目,我想使用一个对象数组,但是我在初始化对象时遇到了一个问题。这是我现在所拥有的 import java.util.Scanner; public class Test{ public static void main(String args[]){ Scanner s=new Scanner(System.in); System.out.println("Welcome to Test. What i
import java.util.Scanner;
public class Test{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.println("Welcome to Test. What is your name");
String ans=s.nextLine();
User[] people=new User[10];
people[1].initializeUser(ans);
people[1].printName();
}
}
我在尝试初始化用户时出现运行时错误。
线程“main”java.lang.NullPointerException中出现异常
下面是类用户的代码,如果有帮助的话
public class User{
public String name;
public User(String x){
name=x;
}
public User intitializeUser(String x){
User y=new User(x);
return y;
}
}
还有一个关于课程的简单问题。。什么时候我应该使用私有而不是公共?我什么时候应该对方法和变量使用static?谢谢,伙计们当你用Java创建一个数组时,它是用空值初始化的。当您试图访问存储在索引1中的用户时,数组返回存储的null,您会得到一个异常
您需要先初始化每个元素,然后才能使用它们 关于以下语句,人员已实例化为数组,但人员[0]、人员[1]、…、人员[9]尚未实例化,因此为空
User[] people=new User[10];
people[1].initializeUser(ans);
people[1].printName();
我认为您应该将initializeUser声明为静态:
public static User intitializeUser(String x) {
User y = new User(x);
return y;
}
然后,您可以使用以下方法之一实例化人员[1]:
people[1] = new User("Name"); // use constructor
people[1] = User.intitializeUser("Name"); // use static method
您创建了一个
User
s数组,但从未填充它,因此它会根据请求返回null。用户数组中的所有元素仍然为null。您需要用people[1]=新用户(“用户名”)之类的东西初始化它们代码>。另外,User类中的initializeUser
方法拼写错误。它有一个额外的“t”哦。我明白我做错了什么。感谢所有回答的人