java如何使用封装
封装的概念
封装是面向对象编程的三大特性之一(封装、继承、多态),其核心是将数据(属性)和操作数据的方法(行为)绑定在一起,并对外隐藏内部实现细节。通过访问修饰符(如 private、protected、public)控制数据的可见性,确保数据安全性和代码可维护性。
封装的基本实现步骤
定义私有属性
使用 private 修饰类的属性,限制外部直接访问。
private String name;
private int age;
提供公共方法(Getter/Setter)
通过 public 方法暴露对属性的可控访问,可在方法中添加逻辑校验。
public String getName() {
return name;
}
public void setName(String name) {
if (name != null && !name.isEmpty()) {
this.name = name;
}
}
构造方法封装
通过构造方法初始化对象时强制校验数据。

public Person(String name, int age) {
this.setName(name); // 复用Setter逻辑
this.setAge(age);
}
封装的典型示例
public class BankAccount {
private String accountNumber;
private double balance;
public BankAccount(String accountNumber, double initialBalance) {
this.accountNumber = accountNumber;
if (initialBalance >= 0) {
this.balance = initialBalance;
}
}
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
}
}
public double getBalance() {
return balance;
}
}
封装的优势
- 数据保护:防止外部直接修改敏感数据(如余额、年龄)。
- 灵活性:可在Getter/Setter中添加额外逻辑(如日志、校验)。
- 降低耦合:隐藏实现细节,外部仅依赖公开方法。
注意事项
- 避免过度封装:简单属性可直接用公共方法暴露,无需复杂逻辑。
- 不可变对象:若属性不允许修改,可省略Setter(如
final字段)。 - 一致性:Getter/Setter命名遵循
getXxx/setXxx规范(布尔类型用isXxx)。
通过合理使用封装,能显著提升代码的健壮性和可维护性。





