我有问题。我正在学习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();
}
}
答案 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
)。否则它将被视为一种方法