package cn.edu.hit.soft.sigh;
public class JavaMain {
public static int times = 5;
public static void main(String[] args) {
System.out.println("your input is :");
for (String s : args) {
System.out.println("\t" + s);
}
main();
main( 12 );
main(12,32);
}
public static void main() {
System.out.println("in main()");
}
public static void main(int x) {
System.out.println("in main(int x), x = " + x);
}
public static void main(int x, int y) {
System.out.println("in main(int x, int y), x = "+ x + ", y = " + y);
}
}
上面這段代碼執行命令
java JavaMain "Hello World" Hellow,World Hello World
後運行的結果爲:
your input is :
Hello World
Hellow,World
Hello
World
in main()
in main(int x), x = 12
in main(int x, int y), x = 12, y = 32
最先輸出的幾行表明:在命令行下用java命令運行程序並傳遞參數時,將以空格爲分隔符,如果參數內有空格,可以用引號""將其括起,當作一個整體。
後面幾行輸出表明java中程序主入口方法main 是可以被重載,但程序運行時調用的是方法
public static void main(String[] agrs)
另外,再看看這個方法能否被其他方法調用,代碼如下:
public class JavaMain {
public static int times = 5;
public static void main(String[] args) {
if(times <= 0){
System.exit(0);
}
func(args);
}
public static void func( String[] args){
System.out.println( times + " main call left" );
times --;
main(args);
}
}
然後運行,結果如下:
5 main call left
4 main call left
3 main call left
2 main call left
1 main call left
可見,它也是可以被其他方法調用的。
綜上,作爲java程序的入口方法,public statc void main(String[] agrs){}與java中public、static、 void等關鍵字修飾的斯文方法完全一樣,都可以被調用、重寫等,但它又有一個獨有的特點就是:它是java程序的唯一入口。