Java封装
封装是面向对象编程的三大特性之一(封装、继承、多态),它可以帮助我们保护数据安全,提高代码的可维护性。
什么是封装?
封装是指将数据(属性)和行为(方法)包装在一个类中,并对外隐藏实现的细节。简单来说就是:
把属性设为私有(private)
提供公共(public)的方法来访问和修改这些属性
为什么要封装?
保护数据安全:防止外部直接访问和修改内部数据
隐藏实现细节:外部只需要知道"做什么",不需要知道"怎么做"
便于维护:内部实现可以改变而不影响外部调用
增加代码灵活性:可以在方法中添加额外的逻辑(如验证)
封装的实现方式
1. 使用private修饰属性
public class Person {private String name;private int age;
}
2. 提供public的getter和setter方法
public class Person {private String name;private int age;// getter方法public String getName() {return name;}// setter方法public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {// 可以在setter中添加验证逻辑if(age > 0 && age < 150) {this.age = age;} else {System.out.println("年龄不合法");}}
}
封装的实际应用示例
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;System.out.println("存款成功,当前余额: " + balance);} else {System.out.println("存款金额必须大于0");}}public void withdraw(double amount) {if(amount > 0 && amount <= balance) {balance -= amount;System.out.println("取款成功,当前余额: " + balance);} else {System.out.println("取款失败,余额不足或金额不合法");}}public double getBalance() {return balance;}public String getAccountNumber() {return accountNumber;}
}
封装的好处
安全性:外部无法直接修改balance,必须通过deposit和withdraw方法
可控性:可以在方法中添加业务逻辑(如金额验证)
灵活性:内部实现可以改变而不影响外部调用
总结
封装是Java编程的基础概念,通过:
将属性设为private
提供public的getter和setter方法
在方法中添加必要的业务逻辑
这样可以构建更安全、更健壮的Java程序。记住:好的封装是优秀Java代码的开始!