数组作为构造函数参数

时间:2013-09-06 07:40:43

标签: java

我有问题。我正在学习java,这个示例代码不起作用,说:

 $javac Quicksort.java 2>&1
    Quicksort.java:16: error: constructor Quicksort in class Quicksort cannot be applied to given types;
    Quicksort qc = new Quicksort(values);
    ^
    required: no arguments
    found: int[]
    reason: actual and formal argument lists differ in length
    1 error

无法弄清楚原因。任何人都可以帮忙??

我的代码段是:

   public class Quicksort{
   public int[] number ;

   public void Quicksort(int[] values){
       this.number=values;
   }
   public void print(){
       for (int i=0; i<number.length;i++)
           System.out.println(number[i]);



   }
   public static void main(String[] args){
       int[] values = {3,4,5,6,7,8};
       Quicksort qc = new Quicksort(values);
       qc.print();
   }

}

2 个答案:

答案 0 :(得分:11)

您对Constructor的定义不正确。

 public void Quicksort(int[] values){
       this.number=values;
   }

应该是

 public  Quicksort(int[] values){
       this.number=values;
   }

构造函数没有返回类型。

Providing Constructors for Your Classes

  

一个类包含被调用以从类蓝图创建对象的构造函数。构造函数声明看起来像方法声明 - 除了它们使用类的名称并且没有返回类型。

例如,Bicycle有一个构造函数:

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}

答案 1 :(得分:4)

public void Quicksort(int[] values){
       this.number=values;
 }

应该是

public Quicksort(int[] values){
       this.number=values;
}

您的构造函数不应具有返回类型(在您的情况下为void)。否则它将被视为一种方法