javabean 必须严格遵循封装规范:属性全为 private;为每个可读/可写属性提供标准 getter/setter(如 getname()、setname(string)),布尔类型可用 isxxx();setter 中用 this.避免形参遮蔽;构造方法中也需校验并初始化。

JavaBean 是一种遵循特定规范的 Java 类,它的核心就是严格应用封装原则。要让一个类成为合格的 JavaBean,属性部分必须按封装规范来设计——不是“能用就行”,而是“必须这样写才合规”。
属性必须声明为 private
所有用于描述对象状态的字段,一律用 private 修饰。这是 JavaBean 的硬性起点,也是封装的第一道防线。
- 不允许使用
public、protected或默认(包级)访问权限暴露属性 - 哪怕只是临时测试,也不该绕过这条规则;否则就不是 JavaBean,只是普通类
- private 确保了外部代码无法绕过逻辑直接修改值,比如不能写
user.age = -5
为每个可读/可写属性提供标准 getter/setter
private 属性本身不可见,所以必须配套提供符合命名约定的公共方法,供外部安全访问。
- 读取属性:用
getXxx()(如getName()),布尔类型可用isXxx()(如isActive()) - 修改属性:用
setXxx(类型 xxx)(如setName(String name)),且方法内应包含校验逻辑 - 方法名必须严格匹配属性名(首字母大写),例如属性
email→getEmail()和setEmail(String email) - 即使某个属性只读(如计算得出的
fullName),也只提供 getter,不写 setter
使用 this 关键字避免形参遮蔽
在 setter 方法中,当形参名和属性名相同时,必须用 this.属性名 明确指向当前对象的成员变量。
- 错误写法:
name = name;→ 实际是把形参赋给自己,属性没变 - 正确写法:
this.name = name;→ 把形参值赋给当前对象的私有属性 - 这个细节看似小,但关系到属性是否真正被初始化或更新,是封装落地的关键一步
构造方法中也要遵守封装逻辑
虽然构造方法可以访问 private 属性,但它不是“绕过封装”的捷径,而是封装初始化阶段的合法入口。
- 推荐使用带参构造方法完成必要属性的赋值,比如
new User("zhang", 28) - 构造方法内部仍需做基础校验(如非空、范围检查),不能把验证责任全推给 setter
- 无参构造方法通常保留,方便框架(如 Spring、JSON 库)反射实例化
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











