在Java中,main()方法除了字串陣列外,還能接受其他引數嗎?
公共靜態void main()方法接受來自使用者的**String**型別的數值陣列。
public class{ public static void main(String[] args){ } }
您可以在執行時,在類名之後用空格隔開傳遞它們,例如:
java ClassName 10 20 30
然後,在程式(main方法中),您可以從String陣列中提取這些值並使用。
示例
例如,您可以使用命令列引數在上述程式中傳遞a和b,例如:
public class Sample { public static void main(String[] args){ int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = a+b; System.out.println("Sum of the two numbers is "+c); } }
輸出
您可以編譯並執行程式,透過命令提示符在執行行傳遞值,如下所示:
main方法的其他引數
您可以使用除了String以外的其他引數編寫public static void main()方法,程式也能編譯透過。
由於main方法是Java程式的入口點,因此每當您執行一個程式時,JVM都會搜尋main方法,該方法是公共的、靜態的,返回型別為void,並且引數為String陣列。
Public static void main(String args[]){ }
如果缺少任何一項,JVM都會引發錯誤。因此,如果您使用其他資料型別(除了String陣列)作為引數編寫方法,在執行時,JVM不會將此新方法視為Java的入口點,並會生成錯誤。
示例
在下面的Java程式中,我們嘗試使用整數陣列作為main方法的引數。
public class MainExample { public static void main(int args[]) { System.out.println("Hello how are you"); } }
輸出
執行此程式時,會生成以下錯誤:
Error: Main method not found in class MainMethodExample, please define the main method as: public static void main(String[] args) or a JavaFX application class must extend javafx.application.Application
廣告