private
Java 中访问权限修饰符的严格程度,是从最严格(限制最多)到最宽松(限制最少)排序的。这个顺序直接对应成员可被访问的范围大小:越严格,能访问的地方越少;越宽松,能访问的地方越多。
private
这个不等式表示权限由小到大(即严格程度由高到低)的完整顺序。
各修饰符的严格程度说明
private(最严格)
只能在声明它的那个类内部访问。同包其他类、子类(无论是否同包)、外部类,一律不可见。用于隐藏核心数据和内部逻辑,比如账户余额、密码字段、私有工具方法。default(包私有,次严格)
不写任何修饰符时自动生效。同一包内的所有类都能访问,但跨包即不可见——哪怕那个类是子类也不行。适合模块内协作,例如工具包中的辅助类或方法。protected(中等严格)
比 default 宽松,多了“不同包的子类”这一访问通道。也就是说,它允许:
• 同一包内任意类访问
• 不同包中继承了该类的子类访问
但不同包的非子类依然不能访问。常用于父类中留给子类扩展的方法或字段。public(最宽松)
没有任何访问限制。只要能通过 import 引入该类(对类而言),或能访问到该类的实例/类型(对成员而言),就可以调用。适用于对外提供的 API、main 方法、公共工具方法等。
使用时的关键注意点
- 顶级类(非内部类)只能用 public 或 default;不能用 private 或 protected 声明
- 内部类可以使用全部四种修饰符
- 接口中的方法默认是 public,字段默认是 public static final,不能加其他修饰符
- 过度使用 public 会削弱封装性;误用 protected 可能导致非子类误以为能访问(实际不行)
不复杂但容易忽略。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南












