为了账号安全,请及时绑定邮箱和手机立即绑定

java里类数组问题,

java里类数组问题,

冯宝宝 2017-09-22 23:41:11
定义数组  不是  :  数组类型 []数组名称=new 数组类型[数组大小],类也是一种数据类型不是么,这里的Student是一个类,我想定义一个类数组 Student[]shazi = new Student[5];然后如果直接这样就会报错,我已经new了为什么它还要报错说空指针指向错误for(int x=0;x<names.length;x++)        {         shazi[x].name=names[x];         //System.out.println(shazi[x].name);                 }难道是因为,类数组里是一个个相同属性的类,类定义就需要new,所以才要new两次么,求告知!!!!!
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

你第一行的理解是对的。 你可以这样定义一个数组 Student[] shazi = new Student[5];

但注意 Java 中的数组在定义后,其中的元素是某些默认的值:

对于数值类型数组,其元素初值为 0

对于 boolean 数组,其元素初值为 false

对于类对象数组,其元素初值为 null

所以在真正使用类对象数组前,你必须先给每个元素赋予适当的值。

查看完整回答
反对 回复 2017-09-23
  • 冯宝宝
    冯宝宝
    我还是有点不太明白,你的意思是Student[] shazi = new Student[5];这样写以后,里面初始值都是null,可是我再次分别对这个对象数组里每个进行初始化,它们值不也是null么,,
  • onemoo
    onemoo
    我是说“给每个元素赋予适当的值”。类对象数组里元素的初始状态就好象你定义了一个变量 Student a = null; 使用前必须先赋予值就好像你使用a前必须 a = new Student(); 一样。 我不知道你说的“初始化”是什么意思。这不是初始化!这之后元素就不再是null了。 一般来说这个给元素初值的过程是用循环为数组的每个元素赋值。
  • 1 回答
  • 0 关注
  • 1167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信