我們能否在 Java 中將 main() 方法宣告為非靜態方法?


公共的static void main(String ar[])方法是 Java 中執行的入口點。當我們執行一個 .class 檔案時,JVM 會搜尋 main 方法,並逐行執行其內容。

你可以在你的程式中編寫 main 方法,而無需static 修飾符,程式可以在沒有編譯錯誤的情況下編譯。

但是,在執行時,JVM 不會將這個新方法(沒有 static)視為程式的入口點。它會搜尋公共的 main 方法,該方法具有 static、返回型別為 void,並且有一個 String 陣列作為引數。

public static int main(String[] args){
}

如果沒有找到這樣的方法,就會產生一個執行時錯誤。

示例

在 Sample 類中的以下 Java 程式中,我們有一個 main 方法,它公開,無返回值(void),並接受一個 String 陣列作為引數。但不是靜態的。

 線上演示

import java.util.Scanner;
public class Sample{
   public void main(String[] args){
      System.out.println("This is a sample program");
   }
}

輸出

執行此程式時,會生成以下錯誤 -

Error: Main method is not static in class Sample, please define the main method as − public static void main(String[] args)

更新時間: 2020 年 6 月 29 日

7K+ 瀏覽數

開始你的 職業生涯

完成課程,獲得認證

開始學習
廣告