JavaSE-封装
封装
封装(Encapsulation)是面向对象编程(OOP)中的一个核心概念,它涉及将数据(属性)和操作这些数据的方法(函数)捆绑在一起。在封装的类中,细节是对使用者隐藏的,而只有通过一个定义良好的接口可以与类进行交互。
封装的主要目的是:
- 保护数据:通过将数据(属性)设置为私有,可以控制对数据的访问,确保数据不被非法修改。
- 提高代码可维护性:将数据和操作数据的方法放在一起,使得代码更加模块化,易于维护和扩展。
- 提高代码可读性:通过提供易于理解的接口(公共方法),可以使得代码更加易于理解和使用。
下面是一个使用Java语言实现封装的例子:
public class BankAccount {
// 私有属性
private String accountNumber;
private double balance;
// 公共方法(获取账户号)
public String getAccountNumber() {
return accountNumber;
}
// 公共方法(设置账户号)
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
// 公共方法(获取余额)
public double getBalance() {
return balance;
}
// 公共方法(存款)
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
} else {
System.out.println("Invalid deposit amount.");
}
}
// 公共方法(取款)
public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
} else {
System.out.println("Invalid withdrawal amount.");
}
}
}
public class Main {
public static void main(String[] args) {
BankAccount myAccount = new BankAccount();
myAccount.setAccountNumber("123456");
System.out.println("Account Number: " + myAccount.getAccountNumber());
myAccount.deposit(1000);
System.out.println("Balance: " + myAccount.getBalance());
myAccount.withdraw(500);
System.out.println("Balance after withdrawal: " + myAccount.getBalance());
}
}
在这个例子中,BankAccount 类有两个私有属性 accountNumber 和 balance,以及一些公共方法(如 getAccountNumber,setAccountNumber,deposit 和 withdraw)来操作这些属性。通过这种方式,BankAccount 类实现了封装。
在 Main 类中,我们创建了一个 BankAccount 对象,并使用公共方法来设置账户号、存款和取款。这样,我们就可以在不直接访问私有属性的情况下对对象进行操作。
这个例子展示了如何使用Java语言实现封装。通过将数据和操作数据的方法放在一起,我们可以更好地保护数据、提高代码的可维护性和可读性。

浙公网安备 33010602011771号