重新认识Java中的程序入口即主函数各组成部分

时间:2021-08-09 21:26:48

主函数各组成部分深入理解

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]);
}
}
}