Java 公共靜態 void main(String[] args)


JVM 呼叫 main() 方法時,Java 程式開始執行。Java 應用程式從此方法開始。如果沒有 main 方法,Java 檔案將成功編譯,因為在編譯時,編譯器不會檢查 main 方法,但在執行時,JVM 會檢查 main() 方法是否存在。因此,我們將在執行時獲得異常。

在本文中,我們將瞭解為什麼遵循“public static void main(String[] args)”約定。

語法

public class class_name {
   // This line must be written as it is
   public static void main(String[] args) {  
      // code will be wriiten here
   }
}

示例 1

public class Tutorialspoint {
   public static void main(String []args) {
      System.out.println("Hello, you are on tutorials point");
   }
}

輸出

Hello, you are on tutorials point

在我們的 Java 檔案中,至少應該有一個公共類。按照慣例,main 方法必須在類中定義,因為所有內容都位於 Java 中的類 內部。這表明 Java 是一種面向物件 的語言。

在上面的示例中,類“Tutorialspoint”包含 main() 方法。讓我們討論 main() 方法的各個部分:

public

public 是一個訪問修飾符,用於定義變數和方法的可見性或可訪問性。使用 public 關鍵字定義的 變數方法 對任何類和包都是可訪問的。前面我們已經討論過 JVM 呼叫 main() 方法,並且它不位於當前類中。因此,main() 方法宣告為 public,以便我們可以全域性或從任何地方訪問它。

如果我們不使用 public 關鍵字與 main() 方法一起使用會怎樣?

示例 2

public class Tutorialspoint {
   static void main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

輸出

Error: Main method not found in class Tutorialspoint, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

我們收到錯誤,因為 JVM 無法找到 main() 方法。

static

通常,我們透過建立其類的物件來呼叫方法,但靜態方法可以在不使用物件的情況下呼叫。JVM 在建立任何物件之前呼叫 main() 方法,因此我們需要將其宣告為 static。

示例 3

內建類 Math 的大多數成員都是靜態的。我們可以直接使用它們,而無需建立其物件。

public class Main {
   public static void main( String[] args ) {
      double x = 6.55;
      double y = 4.32;
      System.out.println(" Ceil value of x: " + Math.ceil(x) );
      System.out.println(" Floor value of y: " + Math.floor(y) );
   }
}

輸出

 Ceil value of x: 7.0
 Floor value of y: 4.0

上面的示例說明了 Math 類靜態方法 ceil() 和 floor() 的用法。我們可以看到,我們在程式中直接使用了它們,而無需建立 Math 類的任何物件。

讓我們看看如果我們不將 main() 方法宣告為 static 會發生什麼。

示例 4

public class Tutorialspoint {
   public void main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

輸出

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

JVM 無法呼叫以上程式碼。

void

返回值型別 void 表示該方法不返回任何內容。在 Java 中,main() 方法是程式的入口點和出口點。當 main() 方法完成執行時,Java 程式 也結束執行。如果我們提供任何返回值型別(如 int 或 double),則它將在編譯時丟擲錯誤。

讓我們透過一個例子來理解:

示例 5

public class Tutorialspoint {
   public int main(String []args){
      System.out.println("Hello, you are on tutorials point");
   }
}

輸出

Tutorialspoint.java:4: error: missing return statement
    }
    ^
1 error

這是一個編譯時錯誤。編譯器要求返回語句,但它對 JVM 無用。

main()

main 是方法的名稱,不要將其誤認為是關鍵字。它始終寫成“main”。

String[] args

String[] args 是一個引數,它接受 String 型別的引數。它允許我們透過終端傳遞引數,並將這些引數儲存在字串陣列中。我們可以說 String[] args 是一個命令列引數。

示例 6

此示例將說明如何從終端將引數傳遞到 Java 檔案。

public class Arg {
   public static void main(String []args){
      // for each loop to print argument taken from terminal
      for(String arg : args) {  
         System.out.println(arg);
      }
   }
}

輸出

要從終端編譯程式碼,請鍵入命令:javac Arg.java

要從終端執行程式碼,請鍵入命令:java Arg “Your String”

PS D:\Java Programs> java Arg "Hello, You are on Tutorials Point"
Hello, You are on Tutorials Point

結論

在本文中,我們討論了 Java 程式以瞭解“public static void main(String[] args)”的用法。我們還討論瞭如何使用引數“String[] args”從終端獲取輸入。

更新於: 2024-06-21

7K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.