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程序的唯一入口。