在 Java 中,能否將頂級類宣告為 protected 或 private?\n
否,我們不能將頂級類宣告為private 或 protected。它可以是public 或預設(無修飾符)。如果它沒有修飾符,則假定其具有預設訪問許可權。
語法
// A top level class public class TopLevelClassTest { // Class body }
- 如果將頂級類宣告為private,編譯器會報錯“此處不允許使用修飾符 private”。這意味著頂級類不能是 private,同樣的規則也適用於protected訪問修飾符。
- Protected表示成員可以被同一包中的任何類以及子類訪問,即使子類位於另一個包中。
- 頂級類只能具有public、abstract和final修飾符,也可以根本不定義任何類修飾符。這稱為預設/包訪問許可權。
- 我們可以將內部類宣告為private或protected,但外部類不允許這樣做。
- 可以在一個 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
廣告