当前位置: 技术问答>java相关
如何建立自定义类的对象数组?
来源: 互联网 发布时间:2015-02-04
本文导语: 我作了一个类, 并想在其他类中定义一个它的对象数组, 但总不行, 只定义一个对象可以运行. 我试过这样实现: 1: MyClass[] MyObj; ... MyObj = new MyClass[num]; 2: MyClass MyObj[]; ... MyO...
我作了一个类, 并想在其他类中定义一个它的对象数组, 但总不行,
只定义一个对象可以运行.
我试过这样实现:
1:
MyClass[] MyObj;
...
MyObj = new MyClass[num];
2:
MyClass MyObj[];
...
MyObj = new MyClass[num];
都报 NullPointerException 异常.
谁能告诉我如何定义自建类的对象数组!
只定义一个对象可以运行.
我试过这样实现:
1:
MyClass[] MyObj;
...
MyObj = new MyClass[num];
2:
MyClass MyObj[];
...
MyObj = new MyClass[num];
都报 NullPointerException 异常.
谁能告诉我如何定义自建类的对象数组!
|
MyClass[] MyObj;
MyObj = new MyClass[num];
或
MyClass MyObj[];
MyObj = new MyClass[num];
都可以,只是你不能直接用MyObj[0].xxx=xxx;
要这样:
MyClass a=new MyClass();
MyObj[0]=a;
MyObj[0].xxx=xxx;(或a.xxx=xxx)
MyObj = new MyClass[num];
或
MyClass MyObj[];
MyObj = new MyClass[num];
都可以,只是你不能直接用MyObj[0].xxx=xxx;
要这样:
MyClass a=new MyClass();
MyObj[0]=a;
MyObj[0].xxx=xxx;(或a.xxx=xxx)
|
您的牢骚发的太不对了,Java 是一种未来的语言,在没有搞清他之前,还是平心静气地学吧!
您的问题是还没有彻底的清楚Java取消了指针而代之以引用,对象在使用之前必须给他分派一个引用,否则NULLPOINTEREXCEPTION即产生。对象的数组可以这样:
yourClass ObjArray[]=new yourClass[num];
ObjArray[0]=new yourClass(...the parameters of construct method);
:
:
:Other obj
ObjArray[0].attribute1=;
:
:
other obj.attribs or methods;
至于您得到的对象属性值都相等,也正是由于引用的原因。您将TempObj 首先赋值予 ObjArr[0],又在i=1时赋值予ObjArr[1],如此下去,孰不知您已经将这个对象数组中的所有元素都变成了对TempObj的引用,当然,他们都相等了。
您的问题是还没有彻底的清楚Java取消了指针而代之以引用,对象在使用之前必须给他分派一个引用,否则NULLPOINTEREXCEPTION即产生。对象的数组可以这样:
yourClass ObjArray[]=new yourClass[num];
ObjArray[0]=new yourClass(...the parameters of construct method);
:
:
:Other obj
ObjArray[0].attribute1=;
:
:
other obj.attribs or methods;
至于您得到的对象属性值都相等,也正是由于引用的原因。您将TempObj 首先赋值予 ObjArr[0],又在i=1时赋值予ObjArr[1],如此下去,孰不知您已经将这个对象数组中的所有元素都变成了对TempObj的引用,当然,他们都相等了。
|
MyClass[] myClass = new MyClass[5];
for (int i = 0; i
for (int i = 0; i