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;
   }

コンストラクターには戻り値の型がありません。

クラスにコンストラクターを提供する

クラスには、クラスの設計図からオブジェクトを作成するために呼び出されるコンストラクターが含まれています。コンストラクターの宣言は、メソッドの宣言と似ていますが、クラスの名前を使用し、戻り値の型を持たない点が異なります。

たとえば、Bicycle1 つのコンストラクターがあります。

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 に答える