當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 } }
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檔案中,至少應該有一個公共類別可用。按照慣例,主方法必須在一個類別中定義,因為在java中所有的東西都在類別的內部。這顯示了java是一種物件導向的語言。
在上面的範例中,類別'Tutorialspoint'包含main()方法。讓我們討論main()方法的各個部分−
public是一個存取修飾符,用於定義變數和方法的可見性和可訪問性。使用public關鍵字定義的變數和方法可以被任何類別和套件存取。之前我們討論過JVM呼叫main()方法,而該方法不位於目前類別中。因此,main()方法被宣告為public,以便我們可以在全域範圍內或任何地方存取它。
如果我們不在main()方法中使用public關鍵字會怎樣?
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()方法。
通常情況下,我們會透過建立一個類別的物件來呼叫方法,但是靜態方法可以在不使用物件的情況下呼叫。 JVM在創建任何物件之前會呼叫main()方法,這就是為什麼我們需要將其宣告為靜態的原因。
大多數內建類別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()方法宣告為靜態會發生什麼。
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表示方法不回傳任何內容。在java中,main()方法是程式的入口和退出點。當main()方法執行完畢時,java程式也結束執行。如果我們提供任何返回類型,例如int或double,它將在編譯時拋出錯誤。
讓我們透過一個例子來理解 -
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”這樣的形式書寫。
String[] args 是一個接受 String 類型參數的參數。它允許我們透過終端傳遞參數,並將這些參數儲存在字串陣列中。我們可以說 String[] args 是一個命令列參數。
這個範例將說明如何從終端機傳遞參數給一個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
在本文中,我們討論了用於理解「public static void main(String[] args)」的Java程式。我們也討論如何使用參數‘String[] args’從終端接收輸入。
以上是Java public static void main(String args) Java 公共靜態 void 主函數(String 參數)的詳細內容。更多資訊請關注PHP中文網其他相關文章!