菜鸟一问:如何使用自定义类的数组
class A
{
int i1;
int i2;
}
class B
{
A[] a;
public B()
{
a = new A[5];
}
public setA(int i1,int i2)
{
a[0].i1 = i1; << 执行到此处出错,java.lang.NullPointerException
}
}
哪位大哥给看看阿
问题点数:100、回复次数:6Top
1 楼tpProgramer(tp编程者)回复于 2002-01-12 11:50:09 得分 30
这样呢?
class B
{
A a[5];
public B()
{
}
public setA(int i1,int i2)
{
a[0].i1 = i1;
a[0].i2 = i2;
}
}Top
2 楼skyyoung(路人甲)回复于 2002-01-12 11:52:34 得分 30
public setA(int i1,int i2)
{
a[0] = new A();
a[0].i1 = i1;
}Top
3 楼I_am_pig(我是猪,弱智的猪,除了吃就不会别的)回复于 2002-01-12 11:53:11 得分 0
哥哥!真厉害!能说下为什么嘛?Top
4 楼nek_in()回复于 2002-01-12 12:11:06 得分 40
a=new A[5]只生成数组对象,数组对象只能容纳数组元素,而不生成数组元素本身,所以创建数组后需要为每个位置创建对象。也就是
a = new A[5]后
a[0]==null; a[1]==null; a[2]==null; a[3]==null; a[4]==nullTop
5 楼I_am_pig(我是猪,弱智的猪,除了吃就不会别的)回复于 2002-01-12 13:04:30 得分 0
谢谢大家!Top
6 楼Soft21(雾昕小子)回复于 2002-01-13 04:51:36 得分 0
大家好啊,好啊,妙!Top




