java 对象数组的初始化

时间:2021-03-20 19:42:52
     java新手。对象数组怎么初始化啊?如图,[img=http://hi.baidu.com/bigheart_/blog/item/5be86d15676a05068718bf01.html][/img]第一个箭头的new是不是会调用构造函数呢,那后面怎么会报错说java.lang.NullPointerException,貌似是说没有初始化吧?
 

10 个解决方案

#2


   另外不是说java里面会默认有初始化么?这是怎么一回事?

#3


  我自己加上 for(int i=0;i<numberOfStudents;i++)
        {
         students[i]=new Student();
        }
又可以了,这个,,,似乎有悖java的简洁性额,

#4


你好!
第一你初始化的只是数组,但是数组中的Student类没有初始化,所以数组的每个元素当然被初始化为null了。
如果想初始化每个数组只能是递归new,或者在定义的时候new出来。

#5


初始化数组只是为你开辟相应的内存空间,而每个元素的初始值都是默认的,
比如int型的就是0,而对象型的就是null。。。

#6


Student[] stu = new Student()[100];
stu[0].getName();这时候的stu[0]是null的,所以会报错,必须先stu[0] = new Student();

#7


Student[] stu = new Student()[100];这句只会初始化一个L.....Student的一个对象,这个对象代表一个数组,同时在给这个数组分配一定大小的内存空间,但是并不会给这个数组里面赋值。
java里面会默认有初始化么?
是的,这个就是为初始化的值,如int,long默认为0,0L。等等,如果是对象,那么默认初始值为null,所以你那个student的数组相当于在里面放置了100个null对象。所以用null调用其方法和属性的时候就会报空指针了

#8


该回复于2012-04-05 11:18:23被版主删除

#9


只初始化了数组,但是数组里的元素没有初始化,也就是null,所以你在调用里面约束方法的时候会报错。 你需要对每个元素做初始化处理之后才能那样用

#10


   谢谢了,果真是这样

#1


#2


   另外不是说java里面会默认有初始化么?这是怎么一回事?

#3


  我自己加上 for(int i=0;i<numberOfStudents;i++)
        {
         students[i]=new Student();
        }
又可以了,这个,,,似乎有悖java的简洁性额,

#4


你好!
第一你初始化的只是数组,但是数组中的Student类没有初始化,所以数组的每个元素当然被初始化为null了。
如果想初始化每个数组只能是递归new,或者在定义的时候new出来。

#5


初始化数组只是为你开辟相应的内存空间,而每个元素的初始值都是默认的,
比如int型的就是0,而对象型的就是null。。。

#6


Student[] stu = new Student()[100];
stu[0].getName();这时候的stu[0]是null的,所以会报错,必须先stu[0] = new Student();

#7


Student[] stu = new Student()[100];这句只会初始化一个L.....Student的一个对象,这个对象代表一个数组,同时在给这个数组分配一定大小的内存空间,但是并不会给这个数组里面赋值。
java里面会默认有初始化么?
是的,这个就是为初始化的值,如int,long默认为0,0L。等等,如果是对象,那么默认初始值为null,所以你那个student的数组相当于在里面放置了100个null对象。所以用null调用其方法和属性的时候就会报空指针了

#8


该回复于2012-04-05 11:18:23被版主删除

#9


只初始化了数组,但是数组里的元素没有初始化,也就是null,所以你在调用里面约束方法的时候会报错。 你需要对每个元素做初始化处理之后才能那样用

#10


   谢谢了,果真是这样