Java初始化纯结构
以下是我想做的:Java初始化纯结构,java,Java,以下是我想做的: public class myClass { int x; int y; } 我学习了C++,所以我尝试这样做: myClass [] a = new myClass[5]; for(int i =0; i < 4; i++) a[i].x = 0; myClass[]a=新的myClass[5]; 对于(int i=0;i
public class myClass
{
int x;
int y;
}
我学习了C++,所以我尝试这样做:
myClass [] a = new myClass[5];
for(int i =0; i < 4; i++)
a[i].x = 0;
myClass[]a=新的myClass[5];
对于(int i=0;i<4;i++)
a[i].x=0;
这不起任何作用,因为所有a[i]都是空的
我知道这违背了Java的基本原则,但有一种叫做Alljoyn的产品,它迫使我这样做,请参见:
AllJoyn不允许在类中使用构造函数或其他方法。是否有其他方法初始化纯结构?如果没有初始化任何对象,请尝试:
myClass [] a = new myClass[5];
for(int i =0; i < 4; i++){
a[i] = new myClass();
a[i].x = 0;
}
myClass[]a=新的myClass[5];
对于(int i=0;i<4;i++){
a[i]=新的myClass();
a[i].x=0;
}
您需要首先将阵列的所有myClass
制度化:
myClass[] a = new myClass[5];
for(int i =0; i < 4; i++) {
a[i] = new MyClass();
a[i].x = 0;
}
myClass[]a=新的myClass[5];
对于(int i=0;i<4;i++){
a[i]=新的MyClass();
a[i].x=0;
}
null
,因为数组中的引用被初始化为null
。您尚未创建任何对象。在循环中使用a[i]=newmyclass()
。类myClass
的这个0参数构造函数将由Java生成a[i].x=0
是无用的。关于Java中的基本数据类型<默认情况下,编译器会将code>int字段初始化为0i<4
不会初始化最后一个元素(第五个元素)。最好总是做i
您看过:和吗?Java为所有不定义构造函数的类优雅地添加了一个默认构造函数。你可以通过调用<代码>新MyCype()/<代码>来创建<代码>结构> <代码>类的实例。我不会称这些“坏”C++习惯。结构变量赋值不是一个坏主意,它可能很有用。您已经更正了代码。当OP在概念上试图“初始化结构实例”时,您能补充一下他在Java中应该做什么吗?