3

我有个问题 。我正在学习 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();
   }

}
4

2 回答 2

11

你的定义Constructor不正确。

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

应该

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

构造函数不会有返回类型。

为您的类提供构造函数

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

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

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}
于 2013-09-06T07:42:41.473 回答
4
public void Quicksort(int[] values){
       this.number=values;
 }

应该

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

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

于 2013-09-06T07:42:40.707 回答