java 如何使用封装
封装的概念
封装是面向对象编程的三大特性之一(封装、继承、多态),指将数据(属性)和操作数据的方法(行为)捆绑在一起,并对外隐藏内部实现细节。通过封装可以实现数据的安全性和代码的可维护性。
实现封装的关键步骤
使用访问修饰符
Java 提供 private、protected、public 和默认(无修饰符)四种访问控制级别。封装通常通过将属性设为 private,再通过 public 方法暴露访问或修改的入口:
public class Person {
private String name; // 私有属性
private int age;
public String getName() { // 公开的getter方法
return name;
}
public void setName(String name) { // 公开的setter方法
this.name = name;
}
}
通过方法控制数据逻辑
在 setter 方法中添加校验逻辑,确保数据合法性:
public void setAge(int age) {
if (age > 0 && age < 120) { // 校验年龄范围
this.age = age;
} else {
throw new IllegalArgumentException("Invalid age");
}
}
封装的优势
- 数据保护:防止外部直接修改对象属性,避免非法值。
- 灵活性:内部实现可独立修改而不影响调用方。
- 隐藏复杂性:暴露简单接口,隐藏复杂逻辑。
实际应用示例
结合构造方法实现完整封装:
public class BankAccount {
private double balance;
public BankAccount(double initialBalance) {
if (initialBalance >= 0) {
this.balance = initialBalance;
}
}
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
public double getBalance() {
return balance;
}
}
注意事项
- 避免过度封装,非必要属性可直接暴露。
- 对于集合类属性,返回副本而非原始引用以防止外部修改:
private List<String> items = new ArrayList<>();
public List getItems() { return new ArrayList<>(items); // 返回副本 }







