class Bullet
{ public int bu_x;
public int bu_y;
public int bu_type;
public boolean bu_exist;
Bullet()
{
bu_x = 0;
bu_y =0;
bu_type =0;
bu_exist = false;
}
}
类原形
在构造函数中写
Bullet[] bullet = new Bullet[100];
bullet[0].bu_type = 10;
运行的时候就
java.lang.NullPointerException
哪位朋友帮忙解决一下 谢谢了
{ public int bu_x;
public int bu_y;
public int bu_type;
public boolean bu_exist;
Bullet()
{
bu_x = 0;
bu_y =0;
bu_type =0;
bu_exist = false;
}
}
类原形
在构造函数中写
Bullet[] bullet = new Bullet[100];
bullet[0].bu_type = 10;
运行的时候就
java.lang.NullPointerException
哪位朋友帮忙解决一下 谢谢了
前加上:
bullet[0] = new Bullet() ;
Bullet[] bullet = new Bullet[100];//它只帮你申请了对象数组在内存中空间大小而已,但它里面的对都是NULL,所以你想使用这个数组存放Bullet对象,你必须将每个对象实例化。也就是
bullet[0] = new Bullet() ;然后你才能操作对象;
在bullet[0].bu_type = 10;
创建实例对象先
for(int i=0, len=bullet.length; i<len; i++){
bullet[i] = new Bullet();
}// 接下来就可以使用这个数组了.
bullet[0].bu_type = 10;
//另:Java普通变量最好不要用下划线作为分隔(仅静态常量用下划线作为分隔)
bullet[0] = new Bullet();//接着就是要对数组的元素初始化,只有当你为该数组的元素分配了内存地址后才能对它进行操纵!
但是数组里面的元素也是对象,你用之前为什么不去new呢对于数组元素的new,建议到用的时候再去new。当然也可以事先全部new出来,
可以写个for循环去new
for( int i = 0; i < bullet.length; ++i )
buttle[i] = new Bullet() ;或者利用java.util.Arrays的静态方法去填充:
Arrays.fill( buttle, new Bullet() ) ;