在 Java 中,能否將頂級類宣告為 protected 或 private?\n


,我們不能將頂級類宣告為private 或 protected。它可以是public預設(無修飾符。如果它沒有修飾符,則假定其具有預設訪問許可權。

語法

// A top level class
   public class TopLevelClassTest {
      // Class body
}
  • 如果將頂級類宣告為private,編譯器會報錯“此處不允許使用修飾符 private”。這意味著頂級類不能是 private,同樣的規則也適用於protected訪問修飾符。
  • Protected表示成員可以被同一中的任何類以及子類訪問,即使子類位於另一個包中。
  • 頂級類只能具有public、abstractfinal修飾符,也可以根本不定義任何類修飾符。這稱為預設/包訪問許可權。
  • 我們可以將內部類宣告為privateprotected,但外部類不允許這樣做。
  • 可以在一個 Java 原始檔中定義多個頂級類,但最多隻能有一個public 頂級類宣告。檔名必須與 public 類的名稱匹配。


將類宣告為 Protected

示例

即時演示

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");
   }
}

在上面的示例中,如果我們嘗試將類宣告為protected,它將丟擲一個錯誤,提示“此處不允許使用修飾符 protected”。因此,以上程式碼無法執行。

輸出

modifier protected not allowed here


將類宣告為 Private

示例

即時演示

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,它將丟擲一個錯誤,提示“此處不允許使用修飾符 private”。因此,以上程式碼無法執行。

輸出

modifier private not allowed here

更新於: 2019-07-30

7K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告