在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

更新於:2020年6月29日

4K+ 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告