如何将int数组作为参数传递给构造函数?

时间:2015-03-17 20:33:56

标签: java object

有人可以告诉我是否可以将int数组作为参数传递给构造函数?

我尝试了以下内容:

public static void main (String args[]){

    Accumulator[] X = new Accumulator[3];     

}

public Accumulator(int[] X) {
    A= new int[X.length];
    for (int i=0; i<X.length; i++)
        A[i] = X[i];
}

4 个答案:

答案 0 :(得分:2)

您正在使用main方法初始化一个大小为3的累加器数组。

要将int数组传递给Accumulator的构造函数,您需要执行以下操作:

public static void main (String args[]){
    int[] someArray = {1,2,3};

    Accumulator accumulator = new Accumulator(someArray);
}

public Accumulator(int[] X) {
    A= new int[X.length];
    for (int i=0; i<X.length; i++)
        A[i] = X[i];
}

答案 1 :(得分:1)

尝试这样的事情:

public static void main (String args[]){
    int[] test = new int[3];
    test[0] = 1;
    test[1] = 2;
    test[3] = 3;
    Accumulator X = new Accumulator(test);     

}

public Accumulator(int[] X) {
    A= new int[X.length];
    for (int i=0; i<X.length; i++)
        A[i] = X[i];
}

答案 2 :(得分:0)

当然,Array只是java中的一个Object,因此您可以将其作为参数传递。虽然你可以简单地使用:

public Accumulator(int[] X){
     A = X;
}

或者,如果您需要复制数组,请使用

public Accumulator(int[] X){
     A = new int[X.length];

     System.arrayCopy(X , 0 , A , 0 , X.length);
}

出于性能原因。

答案 3 :(得分:0)

我看到你得到了许多答案,解释了如何为单个对象做到这一点,但对于数组却没有。所以这就是你如何为数组做到这一点:

public static void main (String args[]){

    int array[] = {1, 2, 3};

    Accumulator[] X = new Accumulator[3];       
    for(Accumulator acc : X) {
        acc = new Accumulator(array);
    }
}

创建数组时,元素初始化为null,因此您可以在循环中创建对象,并且可以在那里使用带有数组参数的构造函数。