在 Java 中,可以將 main() 方法宣告為私有 (private) 或受保護 (protected) 或不帶任何訪問修飾符嗎?
Java 提供了各種訪問修飾符,例如 private、public 和 protected 等。
私有 (Private) 修飾符限制了成員從類外部的訪問。類和介面不能是公有的。
公有 (Public) 訪問修飾符可以與類、方法、建構函式、介面等關聯。public 可以從任何其他類訪問。
受保護 (Protected) 訪問修飾符可以與變數、方法和建構函式關聯,在超類中宣告為受保護的成員只能被其他包中的子類或受保護成員所在類的包中的任何類訪問。
預設訪問修飾符沒有關鍵字,如果一個變數或方法沒有宣告任何訪問控制修飾符,則同一個包中的任何其他類都可以訪問它。
因此,如果將方法宣告為 public,則可以從類外部的任何地方訪問它。眾所周知,如果 main 方法是 public,JVM 會直接訪問/呼叫 main 方法,JVM 可以從任何地方呼叫它。
將 main 方法宣告為私有或受保護
可以在程式中定義 main 方法,而不使用 private、protected 或 default(無)修飾符,程式可以在不出現編譯錯誤的情況下進行編譯。
但是,在執行時,JVM 不會將此視為程式的入口點。它會搜尋具有 public、static、返回型別為 void 以及 String 陣列作為引數的 main 方法。
public static int main(String[] args){ }
如果找不到這樣的方法,則會生成執行時錯誤。
示例
在以下 Java 程式中,類 Sample 包含一個 public 的 main 方法。
public class Sample{ private static void main(String[] args){ System.out.println("This is a sample program"); } }
輸出
執行此程式時,會生成以下錯誤。
Error: Main method not found in class Sample, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
廣告