通过private修饰变量并提供getter/setter方法,实现对变量访问和修改的控制。例如,将字段声明为private String name;可阻止外部直接访问,强制通过公共方法读写数据。public String getName()返回值,而public void setName(String name)可在赋值前校验参数合法性,防止无效数据。若需只读,可仅提供getter方法,并结合final关键字确保初始化后不可变。这种封装机制保障了数据安全与完整性,是Java面向对象编程的核心实践之一。

在Java中限制变量的修改范围,主要通过访问控制符和封装(Encapsulation)机制实现。核心做法是将变量声明为私有(private),并通过公共方法(getter/setter)控制其访问和修改,从而保护数据安全性和完整性。
使用private修饰变量
将类中的字段用private修饰,可以防止外部直接访问或修改该变量。
例如:
private String name;
立即学习“Java免费学习笔记(深入)”;
此时其他类无法直接读写name字段,如obj.name = "test";会编译报错。
提供公共访问方法(Getter/Setter)
在类内部提供public getter和setter方法,用于受控地读取和修改私有变量。
示例:
public String getName() {
return name;
}
public void setName(String name) {
if (name != null && !name.trim().isEmpty()) {
this.name = name;
} else {
throw new IllegalArgumentException("姓名不能为空");
}
}
这样可以在赋值前加入逻辑校验,避免非法数据。
进一步控制修改权限
如果希望变量只读,可以只提供getter方法,不提供setter。
例如:
private final String id;
public String getId() {
return id;
}
// 没有setId方法
结合final关键字,确保对象创建后不可更改。
基本上就这些。通过private变量 + 受控方法的方式,实现变量的有效封装,是Java面向对象编程的基础实践。










