日期:2014-05-20  浏览次数:20746 次

在类中定义另外一个类的对象数组会出错,求解
大家好,最近在学java,觉得java有点难度。就是我在一个类中定义另外一个类的对象数组的时候,发现会出现java.lang.NullPointerException
另外附上我的代码
class Myprocess
{
  int arrivetime;
  int servetime;
}

class Myqueue
{
Myprocess []mp=new Myprocess[3];
Myqueue()
{
  mp[0].arrivetime=1;
}
}会报错,请问这是怎么回事?
------最佳解决方案--------------------
mp[0]=new Myprocess();
mp[0].arrivetime=1;
建议你先学好c语言在学java,不然会感觉很困难的
------其他解决方案--------------------
Myprocess []mp=new Myprocess[3];只是创建了一个3个元素的数组,里面还没放东西呢

mp[0].arrivetime=1;此时mp[0]还为null


------其他解决方案--------------------
Myprocess 是实体类,实体类需要实例化,也就是说在内存中开辟一片空间来存放它的实例,而你仅仅是创建了一个数组,并没有实例化,所以会出现NULLPOINT,明白?
------其他解决方案--------------------
引用:
Myprocess []mp=new Myprocess[3];只是创建了一个3个元素的数组,里面还没放东西呢

mp[0].arrivetime=1;此时mp[0]还为null

能再详细点么?
怎么改??
------其他解决方案--------------------
引用:
mp[0]=new Myprocess();
mp[0].arrivetime=1;
建议你先学好c语言在学java,不然会感觉很困难的


我用new 不是已经实例化了么?
现在我要用三个这样的Myprocess对象,应该如何写?
------其他解决方案--------------------
数组的new  相当于数组类型在内存中分配空间,数组的元素是空的。