当我创建一个对象数组时,如何在每个对象中添加构造函数的参数?像这样:
foos = new Foo[10];
如何使用构造函数制作10个对象?我不明白我在哪里放置传递给每个对象的构造函数的参数?
答案 0 :(得分:5)
foos = new Foo[10];
创建一个可以保存对10 Foo
个实例的引用的数组。但是,所有引用都初始化为null。
你必须分别为数组的每个元素调用构造函数,此时你可以指定你想要的任何参数:
foos[0] = new Foo (...whatever arguments the constructor requires...);
...
答案 1 :(得分:3)
这只是为Foo类型的新数组对象分配以容纳多个元素。为了创建和存储实际对象,您将执行以下操作:
foos[0]=new Foo(); //Call constructor here
.
.
.
foos[10]= new Foo(); //Call constructor here
答案 2 :(得分:2)
Foo
这是创建一个数组类型for(int i=0;i<foos.length; i++){
foos[i] = new Foo (your-argument);
}
,这不是创建对象
用于初始化执行以下操作:
inheritIO()
有关详细信息,请参阅Arrays
答案 3 :(得分:2)
你可以这样内联:
Foo[] foos = new Foo[] {
new Foo(1),
new Foo(2),
new Foo(10)
};
或者像这样:
Foo[] foos = {
new Foo(1),
new Foo(2),
new Foo(10)
};
答案 4 :(得分:1)
让我们说Foo将String作为参数,所以Foo的构造函数是这样的:
public Foo(String arg){
this.arg = arg;
}
如果需要传递给构造函数的参数彼此不同,那么您将需要对每个元素使用单独的初始化。正如@Sanjeev所提到的那样,但却传递了一个论点。
foos[0]=new Foo(argOne);
.
.
foos[10]= new Foo(argTen);
另一方面,如果你的参数与数组索引有关,你应该使用loop作为@Sumit提到
for(int i=0;i<foos.length; i++){
foos[i] = new Foo (arg + i);
}
答案 5 :(得分:0)
因此,为了创建“10”个新对象,您需要创建数组来保存对象,然后在向阵列的每个索引添加新对象时循环遍历列表。
int foosSize = 10;
Foo[] foos = new foos[foosSize];
for(int i = 0; i < foosSize; i++) {
foos[i] = new Foo();
}
这将创建一个新的foo对象并将其添加到您创建的数组中的索引。