Java中的主类概念及声明

1. 首先一定要有main()函数,不然你说从哪个函数开始执行呢

2. 包含main函数的类名不需要和文件名一致

因为字节码文件名只和类名有关,执行java程序时,也只是“java 类名”而不是“java 文件名”,如下。

文件名为test.java,定义了两个类,类名分别为ddeo和deko,编译通过,此时由于源文件中有两个类,所以会产生两个字节码文件(ddeo.class和deko.class),此时分别运行字节码可以正常运行,即没有主次之分。

Java中的主类概念及声明 Java中的主类概念及声明Java中的主类概念及声明

3. public类的类名必须和文件名一致。

类可以不加public修饰正常运行,但是不能被外部其它程序调用。但加public后,类名必须和文件名一致,假设可以不一致,那么同个包中不同名的两个文件可以声明一样的public类,到时生成的字节码文件会覆盖,个人理解,可能不是真正原因。public的类名必须和文件名一致,因此一个文件也只能有一个public类。 

总结:没有主类的具体定义,只是程序执行入口类的一个称呼,一个程序可以有多个程序入口,所以可以有多个主类。那么程序执行入口类只需要包含public static void main函数即可执行,类名可不与文件名一致;但是当该类成为接口以便被调用而加上public修饰符后,类名必须和文件名一致。

4. main函数为什么通过public static void修饰

首先public是访问权限;其次,主类的main函数返回值没有意义,所以返回类型是void,但是如果不是主类的main函数返回值可以是其它类型,如下图。最后,static说明函数直接是静态方法,不用实例化对象,不然使用时需先实例化对象。

Java中的主类概念及声明  Java中的主类概念及声明