1

最初のステートメントがコンストラクター呼び出しであっても、「this(10)」でこのエラーが発生するのはなぜですか。エクリプスを使用しています。

public class MaxIndependentSet {
    private ArrayList<Integer> inputArr = new ArrayList<Integer>();

    public void MaxIndependentSet(int size) {
        inputArr.ensureCapacity(size);
    }

    public void MaxIndependentSet() {
        this(10);
    }
}
4

2 に答える 2

10

コンストラクターに間違った戻り値の型voidを追加しました。

コンストラクターの戻り値の型はそのクラス型であり、次のように暗黙的に宣言されます。

public MaxIndependentSet() {
    // blah
}
于 2012-08-29T06:14:25.823 に答える
1
public void MaxIndependentSet() {
        this(10);
    }

あなたのコードでは void タイプを追加しましたが、それはコンストラクターです。

コンストラクターとメソッドは、シグネチャーの 3 つの側面 (修飾子、戻り値の型、および名前) で異なります。メソッドと同様に、コンストラクターは、public、protected、private、または none (パッケージまたはフレンドリーと呼ばれることが多い) のいずれかのアクセス修飾子を持つことができます。メソッドとは異なり、コンストラクターはアクセス修飾子のみを受け取ることができます。したがって、コンストラクターを抽象、最終、ネイティブ、静的、または同期化することはできません。

コンストラクターには戻り値の型がなく、void さえありません。

コードを書くだけ

public MaxIndependentSet() {
        this(10);
    }
于 2012-08-29T06:21:54.623 に答える