9

これはどういう意味ですか?

public Settings() {
    this(null);
}

上記のコードは、クラス "Settings" のコンストラクターです。this(null) とはどういう意味ですか?

4

8 に答える 8

15
public Settings() {
    this(null); //this is calling the next constructor
}
public Settings(Object o) {
//  this one
}

これは多くの場合、デフォルト値を渡すために使用されるため、いずれかのコンストラクターを使用するかどうかを決定できます。

public Person() {
    this("Name"); 
}
public Person(String name) {
    this(name,20)
}
public Person(String name, int age) {
    //...
}
于 2012-05-18T18:27:45.960 に答える
10

これはObject、何らかの種類の を受け取るオーバーロードされたコンストラクターを呼び出していることを意味しますが、オブジェクトを渡すのではなく、プレーンな を渡しますnull

于 2012-05-18T18:27:19.770 に答える
5

同じクラスの別のコンストラクターを呼び出しているコンストラクターです。

おそらく次のようなものがあります。

public class Settings {
    public Settings() {
        this(null);  // <-- This is calling the constructor below
    }

    public Settings(object someValue) {
    }
}

多くの場合、このパターンは、(呼び出し元が簡単に使用できるように) より少ないパラメーターでコンストラクターを提供できるようにするために使用されますが、ロジックは 1 つの場所 (呼び出されるコンストラクター) に含まれたままにします。

于 2012-05-18T18:27:04.193 に答える
4

Settings クラス内で別のコンストラクターを呼び出しています。単一のパラメーターを受け入れる別のコンストラクターを探します。

于 2012-05-18T18:27:18.610 に答える
1

これは で呼び出さConstructor ChainingJavaます。この呼び出しにより、クラス オブジェクトのオーバーロードされたコンストラクターを実際に呼び出します。例えば

class Employee extends Person {
    public Employee() {
        this("2")  //Invoke Employee's overloaded constructor";
    }

    public Employee(String s) {
        System.out.println(s);
    }
}
于 2012-05-18T18:50:25.010 に答える
1

null を引数として渡してデフォルトのコンストラクターを呼び出します...

于 2012-05-18T18:27:39.767 に答える
1

Javaでオーバーロードされたコンストラクターを読み取ろうとすると、パラメーターが1つしかないコンストラクターを呼び出します..

.

    public Settings() {
        this(null);
    }

   public Settings(Object obj){

}   
于 2012-05-18T18:30:24.397 に答える