Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでトップレベルクラスを保護またはプライベートとして宣言できますか?


いいえ 、トップレベルのクラスをプライベートまたは保護として宣言することはできません 。 公開のいずれかです。 またはデフォルト( 修飾子なし)。 修飾子がない場合は、デフォルトのアクセス権があるはずです。

構文

// A top level class
   public class TopLevelClassTest {
      // Class body
}
  • トップレベルクラスの場合 プライベートとして宣言されています コンパイラは、修飾子privateはここでは許可されていませんと文句を言います。 これは、トップレベルのクラスをプライベートにすることはできないことを意味します 、同じことが保護されたにも適用できます アクセス指定子も。
  • 保護 これは、メンバーが同じパッケージ内の任意のクラスおよびサブクラスからアクセスできることを意味します。 別のパッケージに入っていても 。
  • トップレベル クラスはpublic、abstractのみを持つことができます および最終 修飾子、およびクラス修飾子をまったく定義しないことも可能です。これはデフォルト/パッケージと呼ばれます アクセシビリティ。
  • 内部クラスを宣言できます プライベートとして または保護 、ただし、外部では許可されていません クラス
  • 複数のトップレベルクラス Javaソースファイルで定義できますが、最大で1つのパブリックトップレベルクラスが存在できます。 宣言。ファイル名はパブリッククラスの名前と一致する必要があります。


クラスを保護対象として宣言

protected class ProtectedClassTest {
   int i = 10;
   void show() {
      System.out.println("Declare top-level class as protected");
   }
}
public class Test {
   public static void main(String args[]) {
      ProtectedClassTest pc = new ProtectedClassTest();
      System.out.println(pc.i);
      pc.show();
      System.out.println("Main class declaration as public");
   }
}

上記の例では、クラスを保護として宣言できます。 、エラーをスローします ここでは修飾子の保護は許可されていません 。したがって、上記のコードは実行されません。

出力

modifier protected not allowed here


クラスをプライベートとして宣言する

private class PrivateClassTest {
   int x = 20;
   void show() {
      System.out.println("Declare top-level class as private");
   }
}
public class Test {
   public static void main(String args[]) {
      PrivateClassTest pc = new PrivateClassTest();
      System.out.println(pc.x);
      pc.show();
      System.out.println("Main class declaration as public");
   }
}

上記の例では、クラスをプライベートとして宣言できます。 、エラーをスローします ここでは修飾子privateは許可されていません 。したがって、上記のコードは実行されません。

出力

modifier private not allowed here

  1. 列挙型はJavaの任意のクラスを拡張できますか?

    Javaの列挙(enum)は、定数値のセットを格納するデータ型です。列挙型を使用して、1週間の日数、1年の月数などの固定値を格納できます。 キーワードenumの後に列挙型の名前を-として使用して、列挙型を定義できます。 enum Days {    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 配列と同様に、列挙型の要素/定数は、上記の例では0から始まる番号を使用して識別されます。日は、次の図に示すように番号を使用して識別されます- 列挙型はクラスに似ており、変数、メソッド、コン

  2. JavaでJTextFieldにパディングを追加するにはどうすればよいですか?

    JTextField JTextComponentのサブクラスです クラスであり、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 。 JTextFieldクラスは、 ActionListenerを生成します 内部に入力を入力しようとしたときのインターフェイス。 JTextFieldクラスの重要なメソッドは、 setText()、getText()、setBorder()、setEnabled()、です。 など setMargin(Insets s)を使用して、JTextFieldにパディングを追加できます JTextComponent ク