类的定义有两种方式:
public class 类名
class 类名
我可以将class前面的public去掉,如果采用public class来声明class,那么文件名必须和类名一致,这是规定,如果文件名和类名不一致,怎样呢?我们来把之前的那个HelloWorld.java的文件名修改一下,比如我改成了World.java,然后执行javac命令,可以看到如下报错信息:
World.java 错误: 类HelloWorld是公共的, 应在名为 HelloWorld.java 的文件中声明
public class HelloWorld{
^
1 个错误
如果使用class来声明类,文件名可以是任何合法的文件名称,文件名不需要和Class类一致,我把代码里面的public去掉,文件名依然是World.java,使用javac命令重新编译,可以看到生成了一个新的HelloWorld.class文件,然后运行java HelloWorld,可以看到程序依然可以正常运行。通过这里可以得出一个结论就是,使用javac命令所编译出的class文件的名称跟java的文件名没有关系,而是跟类名一致。
classHelloWorld{publicstaticvoidmain(String[] args){ System.out.println("Hello World"); }}
在一个Java文件里面,可以声明多个class,但是只能声明一个public class,示例代码:
publicclassHelloWorld{publicstaticvoidmain(String[] args){ System.out.println("Hello World"); }}classA{}classB{}classC{}
使用javac命令编译后,你会发现每个class都会生成一个对应的.class文件

生成多个class文件
网友评论