多くの場合、重複した初期化コードの作成を避けるために、あるコンストラクターのコードを別のコンストラクターから呼び出す必要があります。
これを行う方法の例を次に示します。
public class SomeClass {
int a;
int b;
int c;
public SomeClass(int a, int b){
this.a = a;
this.b = b;
}
public SomeClass(int a, int b, int c){
// Вызов конструктора с двумя параметрами.
this(a, b);
this.c = c;
}
public void show(){
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
ご覧のとおり、このためにキーワード を使用しthis
、その後、対応するコンストラクターのパラメーター (この場合は 2 つのパラメーター) を括弧内に示します。あるコンストラクターを同じクラスまたはスーパークラス内の別のコンストラクターから呼び出すことができますが、次の制限があります。
- 呼び出されるコンストラクターは、呼び出し側コンストラクターのコードの最初の行になければなりません。
- ネストされたコンストラクターは、「this」への明示的または暗黙的な参照を持つことはできません。したがって、内部クラスには入ることができません。
GO TO FULL VERSION