日期:2014-05-20  浏览次数:20827 次

java 对象数组的初始化
java新手。对象数组怎么初始化啊?如图,第一个箭头的new是不是会调用构造函数呢,那后面怎么会报错说java.lang.NullPointerException,貌似是说没有初始化吧?
 

------解决方案--------------------
你好!
第一你初始化的只是数组,但是数组中的Student类没有初始化,所以数组的每个元素当然被初始化为null了。
如果想初始化每个数组只能是递归new,或者在定义的时候new出来。
------解决方案--------------------
初始化数组只是为你开辟相应的内存空间,而每个元素的初始值都是默认的,
比如int型的就是0,而对象型的就是null。。。
------解决方案--------------------
Student[] stu = new Student()[100];
stu[0].getName();这时候的stu[0]是null的,所以会报错,必须先stu[0] = new Student();
------解决方案--------------------
Student[] stu = new Student()[100];这句只会初始化一个L.....Student的一个对象,这个对象代表一个数组,同时在给这个数组分配一定大小的内存空间,但是并不会给这个数组里面赋值。
java里面会默认有初始化么?
是的,这个就是为初始化的值,如int,long默认为0,0L。等等,如果是对象,那么默认初始值为null,所以你那个student的数组相当于在里面放置了100个null对象。所以用null调用其方法和属性的时候就会报空指针
------解决方案--------------------
只初始化了数组,但是数组里的元素没有初始化,也就是null,所以你在调用里面约束方法的时候会报错。 你需要对每个元素做初始化处理之后才能那样用