私有属性需通过public get/set方法访问以实现封装;get返回字段值,set校验并赋值,命名遵循javabean规范(如getxxx/setxxx),确保数据安全与逻辑可控。

私有属性(private)不能被类外部直接访问,但可以通过公共的 get(获取器)和 set(设置器)方法间接读写,这是封装的核心实践。
为什么需要 get 和 set 方法
把字段设为 private 可防止外部随意修改,保证数据安全和逻辑可控。比如年龄不能为负数、邮箱必须含 "@" 符号——这些校验只能在 set 方法里做,而不是让调用方直接赋值。
标准 get/set 方法怎么写
命名遵循 JavaBean 规范:字段名 xxx 对应 getXxx()(布尔类型可用 isXxx())和 setXxx(类型 xxx)。方法必须是 public,且不带参数(get)或只带一个参数(set)。
示例:
private String name;
private int age;
// get 方法:返回值类型与字段一致,无参数
public String getName() {
return name;
}
// set 方法:void 类型,参数类型与字段一致
public void setName(String name) {
this.name = name; // this.name 指成员变量,name 指参数
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0 && age
常见注意事项
-
不要在 set 中直接赋值而不校验——失去封装意义,比如
setAge(-5)应拒绝而非静默接受 -
get 方法通常不加逻辑,但可加——例如返回不可变副本(如
return new ArrayList(list);),避免外部修改原集合 -
字段名与参数名相同时,必须用
this.xxx区分,否则会赋值给参数自身,导致字段始终为默认值 - IDE(如 IntelliJ、Eclipse)可自动生成 get/set,但生成后建议手动检查并补上业务校验
什么时候可以不用 get/set
不是所有 private 字段都必须配全对。例如:
- 只读字段:只提供
get,不提供set(如初始化后不再改变的 ID) - 纯内部状态:仅被本类方法使用,外部完全无需访问(如缓存、临时标记),就不需要暴露任何方法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











