java 如何实现封装
封装的概念
封装是面向对象编程的三大特性之一(封装、继承、多态),指将对象的属性和行为(方法)包装在一起,并隐藏内部实现细节,仅对外提供可控的访问方式。通过封装可以提高代码的安全性和可维护性。
实现封装的核心方法
-
使用私有修饰符(private)
将类的成员变量声明为private,禁止外部直接访问。public class Person { private String name; // 私有属性 private int age; } -
提供公共方法(getter/setter)
通过public的getter和setter方法控制对私有属性的读写,可在方法中添加逻辑验证。public class Person { private String name; // getter方法 public String getName() { return name; } // setter方法(可添加验证逻辑) public void setName(String name) { if (name != null && !name.isEmpty()) { this.name = name; } } } -
方法封装
将内部实现细节隐藏在私有方法中,仅暴露必要的公共方法。public class Calculator { public int add(int a, int b) { return a + b; // 暴露的公共方法 } private void logOperation(String operation) { System.out.println("执行操作: " + operation); // 内部私有方法 } }
封装的优势
- 安全性:防止外部直接修改敏感数据(如通过setter验证年龄是否为负数)。
- 灵活性:内部实现可独立修改而不影响调用方(如修改属性存储方式)。
- 可维护性:集中控制数据的访问逻辑,减少重复代码。
实际应用示例
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 && balance >= amount) {
balance -= amount;
}
}
public double getBalance() {
return balance;
}
}
通过封装,外部只能通过deposit()和withdraw()方法修改余额,确保数据合法性。







