创建对象数组时的构造函数

时间:2016-04-20 09:34:57

标签: java arrays constructor

当我创建一个对象数组时,如何在每个对象中添加构造函数的参数?像这样:

foos = new Foo[10];

如何使用构造函数制作10个对象?我不明白我在哪里放置传递给每个对象的构造函数的参数?

6 个答案:

答案 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对象并将其添加到您创建的数组中的索引。