Java封装通过private隐藏字段并提供public方法控制访问,如private String password禁止直接读写,setAge()等方法校验逻辑确保数据安全。

Java 封装通过“限制访问 + 提供可控接口”的方式,把内部复杂性挡在外面,让外部只看到它该看到的部分。
用 private 隐藏核心数据
把类中真正存储状态的字段(比如密码、年龄、余额)一律声明为 private。这样外部代码连“对象.字段”这种写法都不允许,彻底切断直接读写路径。
- 例如:
private String password;—— 外部既不能user.password = "123",也不能System.out.println(user.password) - 没有 private,就谈不上屏蔽;这是封装的第一道门禁
用 public 方法暴露有限能力
不提供字段访问,但提供经过设计的 public 方法,比如 getXXX() 和 setXXX(...),把操作逻辑收归类内部统一管理。
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- 比如设置年龄:
public void setAge(int age) { if (age >= 0 && age - 这个方法对外只暴露“设年龄”这件事,而把校验规则、异常处理、甚至后续日志记录等细节全藏在方法体内
在方法里做校验和转换,不暴露实现逻辑
外部调用的是简单语义,比如 user.encryptPassword("123") 或 account.calculateInterest(),但方法内部可以调用复杂的算法、查数据库、拼接字符串——这些都不需要让调用方知道。
立即学习“Java免费学习笔记(深入)”;
- 用户不需要懂哈希加盐怎么实现,只要传明文密码,拿到加密结果就行
- 账户类可以随时把单利模式换成缓存策略,只要
calculateInterest()的输入输出不变,调用它的代码完全不受影响
用包权限(default / protected)控制模块边界
不是所有东西都要 public。同包内协作的辅助字段或工具方法,可用 默认权限(不写修饰符) 或 protected,既方便内部复用,又防止跨包随意调用。
- 比如一个解析器类,其
parseInternal(String raw)方法对子类有用,但普通业务代码不该碰,就用protected - 包内工具类的静态方法设为 default,能被同包其他类调用,但不会泄露到整个项目

















