在 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP