JAVA中怎么初始化对象数组?

例如 有一个对象数组Animals [] an; 假如我在这个类的构造函数中定义了an=new Animals[5] 但是我只要加入3个 后面两位为空 或者是0 怎么实现? 求高手指点

你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
Animals [] an=new Animals[5];//这只是个对象类型数组的声明
用的时候需要
for(int i=0;i<5;i++)
an[i]=new Animals();
这样你明白了吧
你前面的那个光声明了数组,但是没有调用Animals的构造函数,你数组里的每个元素都是一个对象,使用前必须要先实例化
如果你只是用户输入长度,
Animals [] an=new Animals[n];
声明时是可以用变量的
或者你直接Animals [] an=new Animals[100];定义一个大数组,要用的时候再new Animals();实例化,或者用LinkedList<Animals> an=new LinkedList<Animals>();定义一个动态数组追问

多谢 解决了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-01

初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:

方式一:

String[] strs = new String[2];
strs[0] = "0";
strs[1] = "1";

方式二:

String[] strs = new String[]{"0", "1"};

方式三:

String[] strs = {"0", "1"};

三种方式,都有自己的使用场景,在合适场景使用即可。

第2个回答  2011-12-07
stu=new Student[5];这条语句定义了含有5个Student对象的数组,但没有初始化,所以你要在类里面加一个无参的构造函数
Student()
{
Num = 0;
Name = NULL;
Sex = NULL;
M = 0;
C = 0;
D = 0;
}
第3个回答  推荐于2017-09-06
定义并初始化方法一:
String[] a = new String[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";

定义并初始化方法二:
String[] b = new String[]{"a","b","c"};
第4个回答  2011-10-03
嗯,new之后只是分配了空间,如果不指定值,对象数组空间对应的就是空。那么如你所说,可否详尽一下错误呢?追问

报的是空指针异常, 就是我定义了一个Animals [] an数组 后来我定义了方法,向数组中加入元素。(元素是对象,一个Animal的集合) 加入这个数组的长度是3,但是我只向其中加入了2个元素,我定义一个方法去查看的时候就报出了空指针异常的错误。

相似回答