当前位置: 代码迷 >> java >> 用方法填充二维数组
  详细解决方案

用方法填充二维数组

热度:101   发布时间:2023-08-04 09:12:19.0

所以我目前正在做某事,但遇到了以下问题:

我有一个班级“人”,其姓名,年龄,性别均如此。 我也有一个类“ group”,其参数为groupname,room和person类型的二维数组。 所以一切看起来像这样:

public class person{
 private String name;
 private int age;
 private String gender;

 public person(){}
 public setName(String name){this.name=name;}
 public setAge(int age){this.age=age;}
 public setGender(String gender){this.gender=gender;}
}


public class group{
 private String groupname;
 private String room;
 private person[][] persons;

 public group(int X, int Y){persons = new person[X][Y];}
}

要创建一个组,您必须提供数组的大小。 为了填充人员数组,现在有以下功能:

public setPerson(int X, int Y, String name, int age, String gender){
 persons[X][Y].setName(name);
 persons[X][Y].setAge(age);
 persons[X][Y].setGender(gender);
}

现在,我使用以下逻辑:

group NewGroup = new group(2,0);
NewGroup.setPerson(0,0,"John",7,"male");
NewGroup.setPerson(1,0,"Paul",9,"male");
NewGroup.setPerson(2,0,"Jen",8,"female");

但是,当我这样做时,它给了我以下例外:

线程“主”中的异常java.lang.NullPointerException

所以在我看来,好像没有正确创建数组。 我的错在哪里

(我知道这很奇怪,但是以后的工作需要二维数组)

问题是您实例化了数组,但没有实例化单个对象。 在执行操作之前, persons[X][Y].setName(name); 你应该做这个:

persons[X][Y] = new person();

另外,您应该考虑重命名变量和类以遵循约定。

  相关解决方案