这是我想要做的:
public class myClass
{
int x;
int y;
}我已经学会了c++,所以我试着这样做:
myClass [] a = new myClass[5];
for(int i =0; i < 4; i++)
a[i].x = 0;这不会做任何事情,因为所有的ai都是空的。
我知道这违背了Java的基本原理,但有一个名为Alljoyn的产品,它迫使我这样做,请参阅:
AllJoyn不允许在类中使用构造函数或其他方法。有没有其他方法来初始化一个纯结构?
发布于 2013-03-19 05:02:01
您没有初始化任何对象,请尝试:
myClass [] a = new myClass[5];
for(int i =0; i < 4; i++){
a[i] = new myClass();
a[i].x = 0;
}发布于 2013-03-19 05:05:01
a[i]一样,null,因为数组中的引用被初始化为null。您尚未创建任何对象。在你的循环中使用a[i] = new myClass()。类myClass的这个0参数构造函数将由java语言生成。LikeThis编写的,这是无用的。关于Java中原始数据类型的Read。int字段默认由编译器初始化为0。i < 4,你不会初始化最后一个元素(第5个)。更好的总是做i < a.length.发布于 2013-03-19 05:02:03
您需要首先灌输数组的所有myClass:
myClass[] a = new myClass[5];
for(int i =0; i < 4; i++) {
a[i] = new MyClass();
a[i].x = 0;
}https://stackoverflow.com/questions/15486824
复制相似问题