weixin_41731967 2018-02-15 10:15 采纳率: 12.5%
浏览 2360
已采纳

java空指针异常问题 为何会出现空指针异常

public class Student {
private int on;
private String name;
private int age;
private int java;
private int c;
private int html;
private int sql;
private int sum;
private int avg;
public int getOn() {
return on;
}
public void setOn(int on) {
this.on = on;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
public int getHtml() {
return html;
}
public void setHtml(int html) {
this.html = html;
}
public int getSql() {
return sql;
}
public void setSql(int sql) {
this.sql = sql;
}
public int getSum() {
return sum;
}
public void setSum() {
this.sum = this.java+this.c+this.sql+this.html;
}
public int getAvg() {
return avg;
}
public void setAvg() {
this.avg = this.sum/4;
}
public String toString(){
String msg="\t"+this.on+"\t"+this.name+"\t"+this.age+"\t"+this.java
+"\t"+this.c+"\t"+this.html+"\t"+this.sql+"\t"+this.sum+"\t"
+this.age;
return msg;
}
}

public class Admin {//管理学生类
public void addStudent(String name,int age,Student[] stuArr){
Student stu=new Student();
int i=this.getIndex(stuArr);
stuArr[i]=stu;
stu.setName(name);
stu.setAge(age);
this.show(stuArr);
}
public int getIndex(Student[] stuArr){
for(int i=0;i<stuArr.length;i++){
if(stuArr[i]==null){
return i;
}
}
return 99999;
}
public void show(Student[] stuArr){
for(int i=0;i<stuArr.length;i++){
System.out.println(stuArr[i].toString());
}
}

}

import java.util.*;

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner in=new Scanner(System.in);
    System.out.println("------请输入学生人数------");
    int studentNum=in.nextInt();
    Admin admin=new Admin();
    Student[] stuArr=new Student[studentNum];
    int c=0;
    do{
        System.out.println("请选择你要执行的功能:");
        System.out.println("10:添加一个学生");
        System.out.println("11:查找一个学生");
        System.out.println("12:根据学生编号跟新学生信息");
        System.out.println("13:根据学生编号删除学生");
        System.out.println("14:根据编号输入学生各门成绩");
        System.out.println("15:根据某门成绩进行排序");
        System.out.println("16:根据总分进行排序");
        System.out.println("99:退出系统");
        c=in.nextInt();
        if(c==10){
            System.out.println("请输入学生姓名:");
            String name=in.next();
            System.out.println("请输入学生年龄:");
            int age=in.nextInt();
            admin.addStudent(name,age,stuArr);
        }
    }while(c!=99);
}

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-02-15 13:59
    关注

    public void show(Student[] stuArr){
    for(int i=0;i<stuArr.length;i++){
    if (stuArr[i] != null) //加上
    System.out.println(stuArr[i].toString());
    }

    如果问题解决,麻烦点下我回答右边的采纳,谢谢。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵