java 如何封装
Java 封装的概念
封装是面向对象编程的三大特性之一,用于隐藏对象的属性和实现细节,仅对外公开接口。通过封装可以提高代码的安全性和可维护性。
实现封装的方法
1. 使用 private 修饰成员变量 将类的成员变量声明为 private,限制外部直接访问。
public class Person {
private String name;
private int age;
}
2. 提供公共的 getter 和 setter 方法 通过公共方法间接访问和修改私有成员变量。
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
}
3. 对数据进行验证 在 setter 方法中加入数据验证逻辑,确保数据的有效性。

public void setAge(int age) {
if (age > 0 && age < 150) {
this.age = age;
} else {
System.out.println("Invalid age");
}
}
封装的优势
- 提高安全性:防止外部代码随意修改内部数据
- 隐藏实现细节:外部只需知道如何使用,无需了解内部实现
- 便于维护:修改内部实现不会影响外部代码
- 增强代码的可读性和可维护性
实际应用示例
public class BankAccount {
private String accountNumber;
private double balance;
public BankAccount(String accountNumber) {
this.accountNumber = accountNumber;
this.balance = 0.0;
}
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;
}
public String getAccountNumber() {
return accountNumber;
}
}
注意事项
- 不是所有成员变量都需要 getter 和 setter,应根据业务需求决定
- 对于不可变对象,可以只提供 getter 方法
- 复杂的业务逻辑应该在类内部实现,而不是暴露给外部
- 封装不仅仅是使用 private 和 getter/setter,更重要的是合理设计类的接口






