课外天地 李树青学习天地Java程序语言课件 → 对象数组的使用


  共有15520人关注过本帖树形打印复制链接

主题:对象数组的使用

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
对象数组的使用  发帖心情 Post By:2006/2/26 21:41:53 [只看该作者]

正如一般类型的数组一样,对象数组也是一种常见的数组类型,如
cls[] carray=new cls[10];

但是要注意一个问题:此时的每个数组元素并不是类对象,而仅仅是类的引用变量,所以在上述定义数组的语句后不能直接使用数组元素来调用类对象成员,如:

类文件为:
public class cls
{
        public int val=0;
}

使用该类的程序为:
public class exec
{
        public static void main(String args[])
        {
                cls[] carray=new cls[10];
                
                System.out.println(carray[0].val);
        }
}

运行时报错为:
Exception in thread "main" java.lang.NullPointerException at exec.main(exec.java:7)
意思是引用变量没有指向对象变量,所以产生空指针异常。

所以,使用对象数组的完整写法是:
public class exec
{
        public static void main(String args[])
        {
                cls[] carray=new cls[10];
                
                for(int i=0;i<carray.length;i++)
                        carray=new cls();
                
                System.out.println(carray[0].val);
        }
}

注意:轻易不要使用对象数组创建数量很多的对象变量,因为对象变量一般都比较巨大,过多和不必要的使用显然增加了程序的处理负担。

[此贴子已经被作者于2010-12-12 07:42:19编辑过]

 回到顶部