数组实例变量必须在ctor()中初始化,必须具有从main传递的数组元素a[]



我到处找,找不到答案或提示我的问题。我确信它可能与数组通过引用传递有关,我必须可能复制元素并将它们传递给我的实例变量,但我只是无法弄清楚。

让事情变得简单我们创建了一个Wallet类,它代表一个最多可以容纳10张钞票的钱包。我们被明确告知不要使用数组列表,而要使用数组。钱包有两个实例变量,但我唯一有问题的是这个

private int contents[ ];

我的主程序通过以下调用创建新的钱包对象

int a[ ] = {100, 50, 20, 1};
Wallet myWallet = new Wallet(a);

在我的构造函数中,我必须为contents[]实例变量分配内存,然后从a[]中获取元素,并将它们放入contents数组中。

public Wallet(int a [ ])
System.out.println("Constructor #2 called.");
//allocate memory for contents[]

contents = new int[MAX]   //supposed to be of size 10, given info

//initialize contents[] from a[]

卡在这里,我如何分配它们彼此?

如何将100,50,20,1复制到I = 0 - 3的内容,并重置元素= 0?

你可以用Arrays.copyOf(int[], int)或者

public Wallet(int[] a) {
    System.out.println("Constructor #2 called.");
    this.contents = Arrays.copyOf(a, 10);
}

最新更新