为什么java数组中的这个非法传递给方法的构造函数?

时间:2015-03-09 05:49:35

标签: java arrays constructor

我想创建一个允许我初始化为数组的对象

arraysort test_array = new arraysort.(array_to_be_input);

然后它将有几个方法,如排序删除重复等...但我希望数组一旦被传递到类中就被排序。

我刚刚编写了以下代码,但我不明白为什么会出错。

public class arraysort{
   int[] a;

/* array is input when the object is created */
    arraysort(int[] a){
        this.a=a;  
    }

/*array is put into the sort method*/
    public int[] sortit(a){
        int i = 0;

        while(i<array.length){  
            i++;
        }
    return a;
    }
    public static void main(String[] args) {

    }
}

2 个答案:

答案 0 :(得分:0)

您的sortit方法存在多处错误。

您忘记声明参数,并尝试访问不存在的数组(使用array.length)。请尝试以下方式:

public int[] sortit(int[] a){ // <--- declare your parameters
    int i = 0;

    while(i < a.length){  //<--- access passed parameters
        //whatever you want to do
    }


    return a;
}

答案 1 :(得分:0)

- &gt;你在条件有拼写错误时: -

将此while(i<array.length)更改为此while(i<a.length)

- &GT;你main()方法为空,在main方法中调用你的代码来执行它。

public static void main(String[] args) {

int[] arr=new int[3];
arr[0]=1;
arr[1]=4;
arr[2]=2;

arraysort as=new arraysort(arr);
as.sortit(arr);
}

要强调的其他一些要点是: -

- &GT;使用Capital案例开始类名: - class ArraySort

- &gt;您的sortit(a)方法接受输入a,而它不是必需的,因为它是一个类变量,可以直接在方法中访问。

- &GT;您的sortit(a)方法不会对a执行任何排序/计算,只会将其返回。