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

例如有一个对象数组Animals[]an;假如我在这个类的构造函数中定义了an=newAnimals[5]但是我只要加入3个后面两位为空或者是0怎么实现?求高手指点... 例如 有一个对象数组Animals [] an; 假如我在这个类的构造函数中定义了an=new Animals[5] 但是我只要加入3个 后面两位为空 或者是0 怎么实现? 求高手指点 展开
 我来答
死后是好人
推荐于2017-09-23 · TA获得超过2638个赞
知道小有建树答主
回答量:628
采纳率:0%
帮助的人:946万
展开全部
你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
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>();定义一个动态数组
追问
多谢   解决了
妥当且坦率的才俊k
2014-11-01 · TA获得超过3825个赞
知道小有建树答主
回答量:1008
采纳率:80%
帮助的人:942万
展开全部

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

方式一:

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

方式二:

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

方式三:

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duck_lwz
2011-12-07 · TA获得超过512个赞
知道小有建树答主
回答量:313
采纳率:0%
帮助的人:327万
展开全部
stu=new Student[5];这条语句定义了含有5个Student对象的数组,但没有初始化,所以你要在类里面加一个无参的构造函数
Student()
{
Num = 0;
Name = NULL;
Sex = NULL;
M = 0;
C = 0;
D = 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小西
推荐于2017-09-06 · 运营
小西
运营
采纳数:218 获赞数:3887
百度知道热心用户

向TA提问 私信TA
展开全部
定义并初始化方法一:
String[] a = new String[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";

定义并初始化方法二:
String[] b = new String[]{"a","b","c"};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuezhixicy
2011-10-03 · TA获得超过109个赞
知道答主
回答量:5
采纳率:0%
帮助的人:6.2万
展开全部
嗯,new之后只是分配了空间,如果不指定值,对象数组空间对应的就是空。那么如你所说,可否详尽一下错误呢?
追问
报的是空指针异常, 就是我定义了一个Animals [] an数组  后来我定义了方法,向数组中加入元素。(元素是对象,一个Animal的集合)  加入这个数组的长度是3,但是我只向其中加入了2个元素,我定义一个方法去查看的时候就报出了空指针异常的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式