8

クラスを書くときWidget.java

public class Widget {
    int data;
    String name;
}

コンパイラによって生成されたコンストラクターはpublicまたはdefaultになりますか?

パブリックは次のようになります

public class Widget {
    int data;
    String name;
    public Widget() {}
}

一方、デフォルトは次のように

public class Widget {
    int data;
    String name;
    Widget() {}
}
4

7 に答える 7

6

JLSで言ったように

クラスにコンストラクター宣言が含まれていない場合、パラメーターを取らないデフォルトのコンストラクターが自動的に提供されます。

  1. クラスが public と宣言されている場合、デフォルトのコンストラクターには暗黙的にアクセス修飾子 public が与えられます。
  2. クラスが保護されていると宣言されている場合、デフォルトのコンストラクターには暗黙的にアクセス修飾子 protected が与えられます。
  3. クラスが private と宣言されている場合、デフォルトのコンストラクターにはアクセス修飾子 private が暗黙的に与えられます。
  4. それ以外の場合、既定のコンストラクターには、アクセス修飾子がないことによって暗黙に示される既定のアクセスがあります。
于 2014-02-13T09:53:13.413 に答える
1

publicクラスの可視性が公開されているためです

public Widget() {}
于 2014-02-13T09:53:27.010 に答える