java顶层类仅支持public和默认访问修饰符:public类可被所有包访问且文件名须一致;默认类仅限本包访问;private和protected不适用,因其语义与顶层类定义逻辑冲突。

Java 中类(特指顶层类,不包括内部类)只能使用两种访问权限修饰符:public 和默认(即不写任何修饰符)。
public 修饰的类
表示该类对所有其他类都可见,可被任意包中的代码访问或继承。
- 一个 .java 文件中最多只能有一个 public 类
- public 类的名称必须与文件名完全一致(包括大小写)
- 例如:MyClass.java 中若声明
public class MyClass,则合法;若声明为public class OtherClass,编译会报错
默认(包级)修饰的类
不加任何修饰符时,该类仅在定义它的包内可见,其他包无法直接访问或实例化。
- 适合用于工具类、辅助类等仅限本模块使用的场景
- 同一包下的多个默认类可以互相访问,无需 public 修饰
- 跨包引用会提示“类不可见”或“找不到符号”
为什么不能用 private 或 protected 修饰顶层类?
Java 语言规范明确禁止将 private 或 protected 用于顶层类:
- private 意味着仅本类可访问——但类本身是定义单元,不存在“类内定义另一个顶层类”的语义,逻辑矛盾
- protected 表示同包 + 子类可访问——顶层类没有“父类”概念,子类访问的前提不成立
- 这两个修饰符只适用于类的成员(字段、方法、嵌套类),不适用于外部类
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











