2

私はどこを見ても、自分の問題に対する答えやヒントを見つけることができません。おそらく配列が参照によって渡されることに関係していると確信しており、要素をコピーしてインスタンス変数に渡す必要がある可能性がありますが、それを理解することはできません。

単純にするために、最大 10 枚の紙幣を保持できるウォレットを表す Wallet クラスを作成します。配列リストを使用せず、配列を操作するように具体的に指示されています。ウォレットには 2 つのインスタンス変数がありますが、問題があるのはこれだけです

private int contents[ ];

私のメインは、次の呼び出しで新しい Wallet オブジェクトを作成しています

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?

4

1 に答える 1

0

あなたはArrays.copyOf(int[], int)次のようなものを使うことができます

public Wallet(int[] a) {
    System.out.println("Constructor #2 called.");
    this.contents = Arrays.copyOf(a, 10);
}
于 2016-11-01T02:58:11.603 に答える