栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java数组对象和空指针异常的问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java数组对象和空指针异常的问题

问题要求:
创建若干个学生对象,输入学生的姓名、学号、成绩,并将学生信息打印
报错代码

        Scanner scanner = new Scanner(System.in);
        System.out.println("输入多少个学生的信息?");
        Student[] students = new Student[scanner.nextInt()];
        for (int i = 0; i < students.length; i++) {
            //输入学生的姓名、学号、成绩
            System.out.println("输入第"+(i+1)+"个学生的信息");
            
            System.out.print("输入姓名");
            students[i].setName(scanner.next());
            System.out.print("输入id");
            students[i].setId(scanner.nextInt());
            System.out.print("输入成绩");
            students[i].setScore(scanner.nextInt());
        }
        for (int i = 0; i < students.length; i++) {
            System.out.println(students[i].toString());
        }

以上代码输运行完输入姓名之后会报空指针异常,其原因在于我们虽然创建了对象数组,并对其进行了初始化。

注意: 这里只是给对象数组进行了初始化,并没有对该对象进行初始化。
例如:

Student[] students=new Student[10];

students 是对象数组名,它所表示该数组中一共有10个元素,每一个元素都是Student类的对象名,但只是对象名,并没有实例化,所以还必须为每一个元素实例化。

在上面的代码中没有对每一个元素进行实例化,你没有实例化就没有自己的内存空间,没有私人空间干啥都不好干嘛!所以这个对象就开始罢工,先给你来一手空指针异常,对象嘛,是要哄的,哄着哄着不就好了,你要声明我就给你声明,你要私人空间我就给你空间嘛,当然了,这里有十个对象,怎么着也得雨露均沾!要不然但凡有一个闹起来就不好受了


修改后的代码

for (int i = 0; i < students.length; i++) {
            //输入学生的姓名、学号、成绩
            System.out.println("输入第"+(i+1)+"个学生的信息");
            students[i] = new Student();
            System.out.print("输入姓名");
            students[i].setName(scanner.next());
            System.out.print("输入id");
            students[i].setId(scanner.nextInt());
            System.out.print("输入成绩");
            students[i].setScore(scanner.nextInt());

        }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号