0
public class Examples
{
    private int numbers[]; //instance variable
    public Examples()
    {
        numbers = new int[10];
        for (int i = 0; i < numbers.length; i++) 
        {                           //constructor number 1
           numbers[i] = 42;
        }
     } 

     public Examples(int[] array)
     {
        numbers = new int[array.length];
        for (int i = 0; i < array.length; i++) 
        {
           numbers[i] = array[i];         //constructor number 2
        }
      }
}

そのため、setNumbers に渡された配列と同じ長さのインスタンス変数の新しい配列を作成し、そのパラメーターの値をコピーする set メソッドを作成する必要があります。

これまでのところ、私は持っています

public void setNumbers (int numbers)
    {
        int[] setNumbers = int numbers;
    } 

それからエラーが発生しますが、理由はわかりません

4

1 に答える 1

0

セッターメソッドのシグネチャがどうあるべきかはわかりませんが、正しいメソッドは次のいずれかである可能性があります。

public void setNumbers (int []numbers) {
    this.numbers = numbers;
    // or perhaps you need to copy the argument:
    // this.numbers = Arrays.copyOf(numbers, numbers.length);
}

またはそうでなければ:

public void setNumbers (int numbers) {
    this.numbers = new int[numbers];
}

また、コンストラクターを次のように記述します。

public Examples()
{
    numbers = new int[10];
    Arrays.fill(numbers, 42);
 } 

 public Examples(int[] array)
 {
    numbers = Arrays.copyOf(array, array.length);
  }
于 2012-11-07T03:05:14.040 に答える