我是靠谱客的博主 优秀跳跳糖,最近开发中收集的这篇文章主要介绍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());

        }

最后

以上就是优秀跳跳糖为你收集整理的Java数组对象和空指针异常的问题的全部内容,希望文章能够帮你解决Java数组对象和空指针异常的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部