2012-11-07 49 views
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 
     } 
     } 
} 

因此我必须编写一个set方法,它将为实例变量创建一个新数组,该变量的长度与传递给setNumbers的数组的长度相同,然后复制其参数的值。 。在java中设置和获取方法

到目前为止,我有

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

,我得到的错误,不知道为什么

+0

公共无效setNumbers(INT号) \t \t { \t \t \t int [] setNumbers = int数字; \t \t} – user1804737

+0

你应该发布你迄今为止在你的setNumbers方法中试过的东西,并解释你碰到了什么障碍。 –

+0

你做了什么来尝试自己解决这个问题? – Tinman

回答

0

我不知道你的setter方法签名应该是,但正确的方法可能是一个这些:

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); 
    } 
+0

好吧我会试试看,谢谢。 – user1804737

+0

@ user1804737 - 如果您尚未这样做,请勿忘记导入'java.util.Arrays'。 –

+0

我想他可能希望将参数数组复制到'setNumbers'方法中的'numbers',而不仅仅是分配它。 – arshajii