1. ホーム
  2. java

コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。

2022-02-11 14:26:04

まず、コードの一部を紹介しましょう。

public class Test2 { <未定義

<スパン public Test2(Object a){ <未定義
System.out.println("a") を実行します。
}
public Test2() { <未定義
super()を使用します。
this(new Object());
test()を実行します。
}
public void test() { <未定義

<スパン }
public static void main(String[] args) { { <未定義

<スパン }
}

コンパイラはエラーを報告します。 Constructor call はコンストラクタの最初のステートメントでなければなりません。この文は、コンストラクタの最初の行に置かなければならないことを意味します。コンストラクタ メソッド Test2() では、2 つのコンストラクタが使用されています。

supper()です。

この(new Object())。

これは、Constructor call must be the first statement in a constructor という記述に違反しているため、コンパイラはエラーを報告します。また、このように書いてもエラーになります。

public Test2() { <未定義
test()を実行します。
this(new Object());

<スパン }

理由は同じで、Constructor callという文に従うには、コンストラクタの最初の文でなければならないからです。