主函数各组成部分深入理解
public static void main(String[] agrs)
主函数:是一个特殊的函数,作为程序的入口,可以被JVM调用
主函数的定义:
public:代表着该函数访问权限是最大的
static:代表主函数随着类的加载就已经存在了
void:主函数没有具体的返回值
main:不是关键字,但是一个特殊的单词,能够被JVM识别
(String[] args):函数的参数,参数类型是一个数组,该数组中的元素师字符串,字符串数组。main(String[] args) 字符串数组的 此时空数组的长度是0,但也可以在 运行的时候向其中传入参数。
主函数时固定格式的,JVM识别
主函数可以被重载,但是JVM只识别main(String[] args),其他都是作为一般函数。这里面的args知识数组变量可以更改,其他都不能更改。一个java文件中可以包含很多个类,每个类中有且仅有一个主函数,但是每个java文件中可以包含多个主函数,在运行时,需要指定JVM入口是哪个。当如一个类的主函数可以调用另一个类的主函数。
事例一:说明一个java文件可以包含多个类,每个类只能包含一个主函数。当一个java文件包含多个主函数时,许指定程序入口。
<pre name="code" class="java">class MainDemo { public static void main(String[] args) { System.out.println(args.length); //System.out.println(args[1]);//这样是错误的 System.out.println("MainDemo----0"); main(1); } public static void main(int x) { System.out.println("重载的main函数---"+x); } } class MainDemo1 { public static void main(String[] args) { System.out.println(args.length); //System.out.println(args[1]);//这样是错误的 System.out.println("MainDemo----1"); } }
事例二:说明程序入口主函数在执行时,可以向普通函数一样传入参数。class MainDemo { public static void main(String[] args) { String[] arr={"haha","hha","heihei","xixi","hiahia"}; MainTest.main(arr); } } class MainTest { public static void main(String[] args) { for(int x=0;x<args.length;x++) { System.out.println(args[x]); } } }