关于“为什么一个java源文件中只能有一个public类“小记

注:文档注释生成注释文件时,javadoc要求源文件的类是public修饰

为什么一个java源文件中只能有一个public类?

在java编程思想(第四版)一书中有这样3段话(6.4 类的访问权限):

1.每个编译单元(文件)都只能有一个public类,这表示,每个编译单元都有单一的公共接口,用public类来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译器就会给出错误信息。

2.public类的名称必须完全与含有该编译单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。

3.虽然不是很常用,但编译单元内完全不带public类也是可能的。在这种情况下,可以随意对文件命名。

java文件包含public类 

一个java源文件最多包含一个public类,并且这个类必须与源文件名相同,否则编译器报错,不能编译。

//java文件为second,测试类名
public class first {
    public static void main(String[] args) {
        System.out.println("nihao ");
    }

}


//java文件为second,测试只能有一个public类
public class second {

}

public class first{

}

java文件不包含public类 

java文件不包含public类,这个类就无须与java文件名相同。

//java文件为second
class first {

}

main方法

main包含不一定必须包含在public类中,但是要想运行main方法,无论类标识符如何,类名与文件名都必须相同,否则运行出错,“错误: 找不到或无法加载主类.second”

//java文件为second
class first {
    public static void main(String[] args) {
        System.out.println("nihao ");
    }

}


版权声明:本文为u011304490原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。