java封装的核心是通过private字段+public方法(getter/setter/行为方法/构造器/常量/工具方法)控制外部访问,确保数据安全与接口稳定。

Java 封装对外提供公共操作接口,核心是“不让外部直接访问字段,只允许通过受控的方法来读、写或执行行为”。这既守住数据安全底线,又留出清晰、稳定的交互入口。
用 public getter/setter 暴露属性访问
把字段设为 private 后,外部无法直接读写。必须配套提供符合命名规范的 public 方法:
-
getter 方法:如
getName()、isMale()(布尔类型常用isXxx),只返回值,不修改状态 -
setter 方法:如
setAge(int age),接收新值,并可在内部做校验(比如拒绝负数年龄、限制邮箱格式) - 这些方法是类对外的“唯一通道”,所有属性访问都必须走这里,便于统一加日志、缓存或权限检查
按需设计访问粒度,不硬套“一对全”
不是每个字段都要配完整的 getter + setter。接口开放要贴合业务逻辑:
- 只读字段:提供
getXxx(),但不写setXxx()(如身份证号、创建时间) - 只写场景:极少见,但可仅暴露
setXxx()(如重置密码、触发刷新) - 完全隐藏:临时计算字段、内部缓存等,连方法都不暴露,保持 private 即可
把行为也封装成 public 方法
接口不只是读写属性,还包括对对象状态的合法操作:
- 例如银行账户类提供
deposit(double amount)和withdraw(double amount) - 这些方法内部自动处理余额更新、余额不足判断、事务标记等细节,外部只需调用,不关心怎么算
- 它们和 getter/setter 一样,是类能力的正式出口,同样应设为 public(或按需用 protected/default)
别忽略构造器、常量和工具方法也是接口
公共访问接口不止是实例方法:
- public 构造器:是创建对象的正式起点,可内置参数校验(如不允许 name 为空)
-
public static final 常量:如
MAX_RETRY = 3,属于稳定公开配置,外部可直接引用 -
public static 工具方法:如
StringUtils.isEmpty(String),不依赖实例状态,也构成类级服务能力
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











