黑马程序员技术交流社区

标题: 数组定义的问题 [打印本页]

作者: 罗雪梅    时间: 2012-10-21 10:54
标题: 数组定义的问题
本帖最后由 罗雪梅 于 2012-10-21 15:44 编辑

基本类型的数据定义就是 int [] a=new int[5];
那引用类型的数组我也这样定义的  Person [] p=new Person[5];  但当我用的时候他总是在报空指针异常,难道引用类型数组不是这样定义的吗

使用的时候我是p.setName("KKK");

我是使用中的问题还是定义中的问题呢

作者: 江苏孙浩    时间: 2012-10-21 11:10
个人理解:
当你定义一个Person[] p的时候获得的只是一个空引用
定义了Person [] p=new Person[5],这时获得的是一个引用,这个引用指向一个“数组”;但是这个数组的元素你没有指定,所以都是null,所以不可亦直接引用
如果int [] a=new int[5],这涉及基本类型存储方式和引用类类型存储的不同;同样这个定义,a指向一个数组。然而这个数组是int数组,你获得了5个存储空间,它们都直接存储int数据;对于Person [] p=new Person[5]你也获得了5个存储空间,但是它们存储的是指向Person的引用,并不是类Person的实例的存储空间。
作者: ssx0101    时间: 2012-10-21 11:35
修改成这样:Person[] p=new Person[5];
                  Person p0=new Person;
                  Person p2=new Person;
                  Person p3=new Person;
                  Person p4=new Person;
                  
                  p[0]=p0;
                  p[1]=p1;
                  p[2]=p2;
                  p[3]=p3;
                  p[4]=p4;
                  p[0].serName("KKK");
                   ............
作者: 罗雪梅    时间: 2012-10-21 15:43
曹自祥 发表于 2012-10-21 11:35
修改成这样:Person[] p=new Person[5];
                  Person p0=new Person;
                  Pers ...

恩,正解谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2