首先,main方法是JVM(java虚拟机)自动调用,JVM调用main方法的位置自然不会在某个类中、或某个包中,因此只有当main方法在公有级别上时,才对JVM可见,所以mian方法需要public修饰,同理,main方法所在的类也需要public修饰符。由于main方法是所有程序的入口,也就是main被调用时没有任何对象创建,不通过对象调用某一方法,只有将该方法定义为静态方法,所以main方法是一个静态方法,既需要static修饰。JVM对于java程序已经是最底层,由它调用的方法的返回值已经没有任何地方可去,因此,main方法返回值为空,既需用void修饰。至于main方法的参数String[ ] arg我们现在已经很少有机会去用它了,它用于在接受命令行传入的参数,试一下面的小程序吧:
public class Test{
public static void main(String[] arg){
System.out.println("输出在命令行接受的参数");
for(int i=0;i<arg.length;i++){
System.out.println(arg[i]);
}
}
}
将其保存为Test.java文件,然后在命令行转到该文件目录,并输入:
javac Test.java
java Test 1st 2nd
1st 2nd用空格隔开,运行结果:
输出在命令行接受的参数
1st
2nd
虽然我们现在很少用到String[] arg 这个参数,但JVM仍然只认有这个参数的为main方法,写入其他参数则视为对main方法的重载,自己试试吧!
终上所述,main方法的格式必须是public static void main(Sting[ ] arg)。
补充:
想一下没有main方法的程序能不能运行呢?试着去掉main方法,写上一个静态块:
static{
//在此写入你想要运行的代码
}
转载于:https://blog.51cto.com/8924545/1413929