为什么javac使用默认修饰符编译类,即使文件名不同,当访问修饰符是公共的,私有的还是受保护的时,为什么不编译? 例如:文件名:测试 文件内容 class foo {}
它被编译没有错误,如果我添加公共,私有或受保护的类前面它没有被编译可以任何人解释为什么它如此
答案 0 :(得分:2)
有两条规则
public
,那么文件名应该是同一类型,可以是class
或interface
private
或protected
外层。为什么第一点的答案是它是java规范的定义方式。 您不能将外部类声明为私有,因为它根本不会服务于任何目的。