Java封装通过private修饰成员变量、提供带校验的getter/setter方法、隐藏内部实现细节、合理使用访问修饰符来实现信息隐藏。

Java 中的封装通过访问控制修饰符和设计规范来实现信息隐藏,核心是限制外部对类内部数据的直接访问,只暴露必要的操作接口。
使用 private 修饰成员变量
将字段声明为 private 是封装的第一步。这样外部类无法直接读写该变量,强制所有访问必须经过类自身提供的方法。
例如:
private String password;private int age;
提供受控的公共访问方法(getter/setter)
通过 public 的 getter 和 setter 方法,可以在读取或修改属性时加入逻辑校验、日志、转换等处理,实现行为约束。
- setter 中可校验数据合法性(如年龄不能为负、密码长度需达标)
- getter 可返回副本(避免外部修改内部数组或集合)
- 某些字段只提供 getter(只读),或只提供 setter(仅初始化后设值)
不暴露内部实现细节
方法命名和参数设计应聚焦“做什么”,而非“怎么做”。例如:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- 用 withdraw(double amount) 而不是 updateBalance(-amount)
- 内部可能用 HashMap 存储用户,但对外只提供 getUserById(String id),不暴露 Map 结构
这样即使将来更换底层数据结构,只要接口不变,调用方代码无需改动。
合理使用 package-private 和 protected(按需)
若需在包内共享或支持继承扩展,可选用 default(包私有) 或 protected,但要明确其影响范围:
- default:同一包内可见,适合模块内协作,不对外暴露
- protected:子类可访问,适用于被继承时需复用的内部逻辑,但仍不向无关类开放
慎用 public 字段或方法——除非明确设计为开放 API。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










