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”從終端獲取輸入。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP