1

このコードにコンストラクターはありますか?このコードのどの部分がコンストラクターですか?

class Bicycle {
    int cadance = 0;
    int speed = 0;
    int gear = 0;

    void changeCadance(int changeCadence) {
        cadance = changeCadence;
    }

    void changeGear(int changeGear) {
        gear = changeGear;
    }

    void changeSpeed(int changeSpeed) {
        speed = changeSpeed;
    }

    void printState() {
        System.out.print("Cadance = "+cadance);
    }
}
4

2 に答える 2

3

あなたが持っているのは、暗黙のデフォルトコンストラクタです。綴られることはありませんが、IDEとコンパイラによってそこにあると理解されています。非静的クラスは一般にコンストラクターを持っていると理解されているため、コンストラクターが明示的に作成されていない場合は、デフォルトのコンストラクターが使用されます。引数をとらず、実際には何もしませんが、明示的に指定されたプロパティ値でクラスを初期化します。場合によっては、デフォルトだけで解決できることもあります。

もう少し詳しくは、デフォルトコンストラクターのウィキペディアの記事をリンクしています。これは、いくつかの言語で説明するのに非常に効果的だと思います。

基本的に、パラメーターのないコンストラクターがクラスで明示的に指定されていない場合、デフォルトのコンストラクターはコンパイラーによって提供されます(IDEは通常それを呼び出すこともできます)。したがって、パラメーターを受け取るコンストラクターを作成するが、引数を受け取らないコンストラクターを作成しない場合でも、コンパイラーは引数を提供します。

一部の言語は少し異なるため、これは少し一般化されていますが、ほとんどの場合、上記のことを行っていると思います。

于 2012-11-30T15:29:01.970 に答える
1

コンストラクターは、暗黙のデフォルトコンストラクターです。

他のコンストラクターが定義されていない場合は、空のコンストラクター(パラメーターなし)を提供するのがJava(および他の言語)の規則です。

パラメータを使用してコンストラクタを追加するとすぐに、暗黙のデフォルトコンストラクタは使用できなくなることに注意してください。

于 2013-01-08T18:11:45.030 に答える