1. ホーム
  2. java

[解決済み] デフォルトのコンストラクタのヘッダはどうなるのでしょうか [重複] 。

2022-02-18 07:31:44

質問

私はjavaの初心者で、デフォルトコンストラクタのヘッダに関する概念を把握しようとしています。

Circleの第1コンストラクタのヘッダは。

public Circle(String label, int radius)

もし、クラスにデフォルトのコンストラクタを追加することにした場合。このデフォルトのコンストラクタのヘッダはどのようなものになるでしょうか?

ネットで調べてみたのですが、なかなか簡潔な答えが見つかりません。

解決方法は?

<ブロッククオート

クラスにデフォルトのコンストラクタを追加することにした場合。

あなたは はデフォルトのコンストラクタを追加することを決定しません。コンストラクタを指定しない場合は、コンパイラが追加してくれます。

追加されるものは、以下のように定義されています。 JLS§8.8.9 :

クラスにコンストラクタの宣言がない場合、デフォルトのコンストラクタが暗黙のうちに宣言されます。トップレベルクラス、メンバクラス、ローカルクラスのデフォルトコンストラクタの形式は、次のとおりです。

  • デフォルトコンストラクタは、クラスと同じアクセシビリティを持ちます(§6.6)。

  • デフォルトコンストラクタは形式パラメータを持たない。ただし、非プライベート内部メンバクラスでは、デフォルトコンストラクタはクラスのインスタンスを直ちに表す形式パラメータを暗黙的に1つ宣言する (§8.8.1, §15.9.2, §15.9.3) 。

  • デフォルトのコンストラクタにはthrows句がありません。

  • 宣言されているクラスが原初のクラス Object の場合、デフォルトコンストラクタは空のボディを持ちます。それ以外の場合は、デフォルト コンストラクタは引数なしでスーパークラス コンストラクタを呼び出すだけです。

では、もし Circle が公開されている場合、デフォルトの署名はこうなります。

public Circle()

例)完全生成されたバージョンは。

public Circle() {
    super();
}