java类对象数组,空指针异常,求解
问题描述:
问题遇到的现象和发生背景
1、创建一个Student类,在该类中,定义一些成员变量,如姓名、学号、班级、学校、成绩;同时,定义一些成员方法,比如:听课、看书、吃饭、自我介绍等;
2、在第一题的基础上,创建一个数组,数组类型为Student类;
要求一:然后通过for循环,给该数组中元素进行赋值,同时给每名同学的成绩进行赋值;
要求二:遍历该数组,将每名同学的成绩输出
要求三:使用冒泡排序,按照成绩大小,对学生进行排序,然后打印输出学生对应的学号和成绩
问题相关代码,请勿粘贴截图
public class Student {
public String name ;
public int id;
public String School;
public int score;
public void listen() {
System.out.println("我能听课");
}
public void dohomework() {
System.out.println("我能写作业");
}
public void intorduce() {
System.out.println("我叫:"+name+",我的学校是:"
+School+",我的学号是:"+id
+",我的成绩是:"+score);
}
}
import java.util.Scanner;
public class Do {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student[]arr=new Student[5];
Scanner input=new Scanner(System.in);
for(int i=0;i<arr.length;i++) {
System.out.println("请输入名字");
arr[i].name=input.next();
arr[i].School="肥乡一中";
System.out.println("请输入成绩");
arr[i].score=input.nextInt();
arr[i].id=i+1;
}
for(int t=0;t<arr.length;t++){
arr[t].intorduce();
}
}
}
运行结果及报错内容
空指针异常
我的解答思路和尝试过的方法
我想要达到的结果
能把数据输入进去
答
你只创建了数组,并没有实例化类,加一行代码,arr[i] = new Student();
public static void main(String[] args) {
// TODO Auto-generated method stub
Student[]arr=new Student[5];
Scanner input=new Scanner(System.in);
for(int i=0;i<arr.length;i++) {
arr[i] = new Student();
System.out.println("请输入名字");
arr[i].name=input.next();
arr[i].School="肥乡一中";
System.out.println("请输入成绩");
arr[i].score=input.nextInt();
arr[i].id=i+1;
}
for(int t=0;t<arr.length;t++){
arr[t].intorduce();
}
}
答
每次需要创建学生对象。
public static void main(String[] args) {
Student[]arr=new Student[5];
Scanner input=new Scanner(System.in);
for(int i=0;i<arr.length;i++) {
Student stu=new Student();
System.out.println("请输入名字");
stu.name=input.next();
stu.School="肥乡一中";
System.out.println("请输入成绩");
stu.score=input.nextInt();
stu.id=i+1;
arr[i]=stu;
}
for(int t=0;t<arr.length;t++){
arr[t].intorduce();
}
}
答
你的数组存的是对象的信息,你需要每一次在存对象信息的时候new一个对象,再给对象的属性赋值,然后再将这个对象存入数组。