import java.util.Scanner;
 class student{
public String name;
public int score;

public static double average(student[] students){
double sum=0;
for(int i=0;i<students.length;i++){
sum+=students[i].score;
}
return sum/students.length;
};
}public class learn{
public static void main(String[]args){
Scanner scan=new Scanner(System.in);
int number=0;
number=scan.nextInt();
student[] students=new student[number];

//Scanner scan2=new Scanner(System.in);
for(int i=0;i<students.length;i++){
System.out.printf("Name: ");
students[i].name=scan.next();
System.out.printf("score: ");
students[i].score=scan.nextInt();

}
for(int j=0;j<number;j++){
System.out.printf("%d ",students[j]);
}
}
};这段代码运行后我只能输入第一个数,然后再次输入就报错了
3
Name: tom
Exception in thread "main" java.lang.NullPointerException
at learn.main(learn.java:25)

解决方案 »

  1.   

    students[i].name不可以直接赋值吧
      

  2.   

    楼主上面说的不对 下面给你改后的代码import java.util.Scanner;class student
    {
    @Override
    public String toString()
    {
    return "student []";
    } public String name;
    public int score;
    public void setName(String a)
    {
    name = a;
    } public static double average(student[] students)
    {
    double sum = 0;
    for (int i = 0; i < students.length; i++)
    {
    sum += students[i].score;
    }
    return sum / students.length;
    };
    }public class learn
    {
    public static void main(String[] args)
    {
    Scanner scan = new Scanner(System.in);
    int number = 0;
    number = scan.nextInt();
    student[] students = new student[number];
    for(int m = 0;m<students.length;m++)//需要初始化对象
    students[m] =new student();

    students[0].name = "afjkdlasf";
    for (int i = 0; i < students.length; i++)
    {
    System.out.printf("Name: ");
    students[i].setName(scan.next());
    System.out.printf("score: ");
    students[i].score = scan.nextInt(); }
    for (int j = 0; j < number; j++)
    {
    System.out.printf("%d ", students[j]);
    }
    }
    };
      

  3.   

    既然定义了两个引用:scan和scan2,为何name和score的输入只用scan....还有,楼主的编程风格独树一帜啊~  囧