Java访问控制权限从最严格到最宽松的顺序是private→default→protected→public,分别对应类内私有、包内共享、包内+子类受保护、全局公开四级可见性,体现渐进式放开的设计逻辑。

Java 中访问控制权限从最严格到最宽松的顺序是:private → default → protected → public。
这个顺序不是随意排的,它对应着“可见范围由窄到宽”的逻辑链条,掌握它关键在于理解每级“放开了一点什么”。
private 是最严的起点
只能在定义它的那个类内部使用。
- 同包其他类不能碰,子类也不能继承或调用。
- 适合放核心数据(比如密码字段)和纯内部辅助方法。
- 记住口诀:“私有即自用,谁都不给看”。
default 是包内共享层
不写任何修饰符,就自动是 default(也叫包私有)。
立即学习“Java免费学习笔记(深入)”;
- 同一个包里的所有类都能访问,跨包直接失效,哪怕你是子类也不行。
- 常用于模块内部协作,比如工具类、配置类、包内通用逻辑。
- 可联想:“默认=本小区通行证,出了门就作废”。
protected 是带血缘的放宽
允许两类外部访问:同包的所有类 + 不同包的子类。
- 子类能继承并使用,但不同包的非子类类依然不可见。
- 主要为继承设计,比如父类留出可被重写的钩子方法。
- 记住要点:“受保护=家人+邻居,外人不行”。
public 是完全开放
任何类、任何包,只要导入了就能用(类需 public + 正确 import)。
- 对外暴露 API、框架入口、通用工具方法都用它。
- 但别滥用——不是所有方法都需要全世界都能调。
- 简单记:“公共=挂门口的招牌,谁都看得见、进得来”。
这四个级别构成了一套渐进式可见性模型,选哪个,本质是在回答一个问题:这个成员,最小需要让谁看见?
从 private 开始尝试,只在必要时一级级放宽,代码会更安全、更易维护。


















