JAVA中怎么初始化对象数组?
例如有一个对象数组Animals[]an;假如我在这个类的构造函数中定义了an=newAnimals[5]但是我只要加入3个后面两位为空或者是0怎么实现?求高手指点...
例如 有一个对象数组Animals [] an; 假如我在这个类的构造函数中定义了an=new Animals[5] 但是我只要加入3个 后面两位为空 或者是0 怎么实现? 求高手指点
展开
9个回答
展开全部
你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
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>();定义一个动态数组
这个数组对象都是现用现初始化的
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>();定义一个动态数组
追问
多谢 解决了
展开全部
初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:
方式一:
String[] strs = new String[2];
strs[0] = "0";
strs[1] = "1";
方式二:
String[] strs = new String[]{"0", "1"};
方式三:
String[] strs = {"0", "1"};
三种方式,都有自己的使用场景,在合适场景使用即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stu=new Student[5];这条语句定义了含有5个Student对象的数组,但没有初始化,所以你要在类里面加一个无参的构造函数
Student()
{
Num = 0;
Name = NULL;
Sex = NULL;
M = 0;
C = 0;
D = 0;
}
Student()
{
Num = 0;
Name = NULL;
Sex = NULL;
M = 0;
C = 0;
D = 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义并初始化方法一:
String[] a = new String[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";
定义并初始化方法二:
String[] b = new String[]{"a","b","c"};
String[] a = new String[3];
a[0] = "a";
a[1] = "b";
a[2] = "c";
定义并初始化方法二:
String[] b = new String[]{"a","b","c"};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯,new之后只是分配了空间,如果不指定值,对象数组空间对应的就是空。那么如你所说,可否详尽一下错误呢?
追问
报的是空指针异常, 就是我定义了一个Animals [] an数组 后来我定义了方法,向数组中加入元素。(元素是对象,一个Animal的集合) 加入这个数组的长度是3,但是我只向其中加入了2个元素,我定义一个方法去查看的时候就报出了空指针异常的错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询