以文本方式查看主题

-  课外天地 李树青  (http://www.njcie.com/bbs/index.asp)
--  Java程序语言课件  (http://www.njcie.com/bbs/list.asp?boardid=17)
----  对象数组的使用  (http://www.njcie.com/bbs/dispbbs.asp?boardid=17&id=36)

--  作者:admin
--  发布时间: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编辑过]