gpt4 book ai didi

java - 是什么导致了这个异常? for循环的构造函数是不必要的吗?

转载 作者:行者123 更新时间:2023-12-01 13:07:14 26 4
gpt4 key购买 nike

     import java.util.*;
public class UserInput {
public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.println("How many students are in your class?");
Student.n= input.nextInt();
ArrayList<Student> manyStudents = new ArrayList<Student>();
for(int i=0; i<Student.n; i++){
manyStudents.add(new Student(null, null, null, null, 0));
}

}
}

这个 main 方法调用公共(public)类 Student 创建许多对象实例,其中包括学生的名字、姓氏、HKID SID 和考试成绩,并将每个对象实例存储在另一个被视为 ManyStudents 的数组中。该问题涉及解释后半部分所示的运行时收到的编译错误。

        import java.util.*;
public class Student {
public static String [] first;
public static String [] last;
public static String [] HKID;
public static String[] SID;
public static int []Exam;
public static int n;


public Student (String f, String l, String h, String s, int e){
Scanner kb= new Scanner(System.in);
for(int i=0;i<n;i++){
System.out.println("First name:");
first[i]=f= kb.next();
System.out.println("Last name:");
last[i]=l=kb.next();
System.out.println("HKID:");
HKID[i]=h=kb.next();
System.out.println("SID:");
SID[i]=s=kb.next();
System.out.println("Final exam score:");
Exam[i]=e=kb.nextInt();
}
}

public String[] getFirst(){return first;}
public String [] getLast(){return last;}
public String [] getHKID(){return HKID;}
public String [] getSID(){return SID;}
public int [] getExam(){return Exam;}
public void setFirst(String [] f){f=first;}
public void setLast(String [] l){l=last;}
public void setHKID(String [] h){h=HKID;}
public void setSID(String [] s){s= SID;}
public void setExam(int [] e){e=Exam;}
}

在运行时,我在询问名字后收到错误。错误如下:

Exception in thread "main" java.lang.NullPointerException
at Student.<init>(Student.java:15)
at UserInput.main(UserInput.java:9)

学生构造函数中的“i”是否会干扰将变量分配给每个对象实例。该代码对我来说似乎具有逻辑意义,因此我不确定运行时出错的原因。也许构造函数中的 for 循环是不必要的......我对任何原因都没有信心。有人可以解释一下吗???

最佳答案

您需要实例化您的数组,例如:

first = new String[n];

然后才能使用first[i]last 和 co. 相同。

此外,您似乎期望 f = kb.next() 正在执行某些操作,但它在当前代码中没有执行任何操作。

关于java - 是什么导致了这个异常? for循环的构造函数是不必要的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23179954/

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