java封装通过private字段+public getter/setter等方法提供可控访问接口,支持只读、只写或无访问设计,并结合访问修饰符明确接口边界,涵盖构造器、常量和工具方法。

Java 中封装提供公共访问接口,核心是“不让外部直接碰属性,只让它们通过方法来读或改”。这既保护了数据,又留出了可控的交互入口。
用 public getter/setter 方法暴露读写能力
把字段设为 private 后,外部无法直接访问。这时需配套提供 public 的 getter(读)和 setter(写)方法:
-
getter 方法:命名习惯是
getXxx()(布尔类型可用isXxx()),只返回值,不修改状态 -
setter 方法:命名习惯是
setXxx(参数),接收新值,并可在内部加入校验逻辑(如年龄不能为负、密码长度不能少于8位) - 这些方法是类对外的“窗口”,所有访问都必须经过它们,便于统一控制和后期扩展
按需开放不同粒度的访问权限
不是每个字段都要配完整的一对 getter/setter。可以根据业务需要灵活设计:
- 只读字段:只提供
getXxx(),不提供 setter(例如身份证号录入后不可修改) - 只写字段:极少见,但可只提供
setXxx()(如重置操作) - 无访问需求:某些辅助字段(如临时计算缓存)可完全 private 且不暴露任何方法
- 行为封装:除了属性访问,还可以把一整套操作封装成 public 方法(如
deposit(double)、withdraw(double)),隐藏余额变更细节
配合访问修饰符明确接口边界
public 是最常用的接口修饰符,但它不是唯一选择:
- 如果某方法只希望同包内其他类调用,可用 default(不写修饰符)
- 如果希望子类能复用或重写某个逻辑,可用 protected(比如模板方法中的钩子方法)
- 避免把本该 private 的辅助方法误设为 public,否则会污染接口、增加维护负担
接口不只是方法,也包括构造器和常量
公共访问接口不仅限于 getter/setter:
- public 构造器:是创建对象的正式入口,可设参数校验,控制合法实例的产生
-
public static final 常量:如
public static final String DEFAULT_ROLE = "USER";,属于稳定、可信赖的公开配置 -
public 工具方法:如
public static String formatName(String raw),不依赖实例状态,也可作为类级接口的一部分
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











