Java封装

发布于:2025-08-19 ⋅ 阅读:(18) ⋅ 点赞:(0)

封装是面向对象编程的三大特性之一(封装、继承、多态),它可以帮助我们保护数据安全,提高代码的可维护性。

什么是封装?

封装是指将数据(属性)和行为(方法)包装在一个类中,并对外隐藏实现的细节。简单来说就是:

  • 把属性设为私有(private)

  • 提供公共(public)的方法来访问和修改这些属性

为什么要封装?

  1. ​保护数据安全​​:防止外部直接访问和修改内部数据

  2. ​隐藏实现细节​​:外部只需要知道"做什么",不需要知道"怎么做"

  3. ​便于维护​​:内部实现可以改变而不影响外部调用

  4. ​增加代码灵活性​​:可以在方法中添加额外的逻辑(如验证)

封装的实现方式

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;
    }
}

封装的好处

  1. ​安全性​​:外部无法直接修改balance,必须通过deposit和withdraw方法

  2. ​可控性​​:可以在方法中添加业务逻辑(如金额验证)

  3. ​灵活性​​:内部实现可以改变而不影响外部调用

总结

封装是Java编程的基础概念,通过:

  1. 将属性设为private

  2. 提供public的getter和setter方法

  3. 在方法中添加必要的业务逻辑

这样可以构建更安全、更健壮的Java程序。记住:好的封装是优秀Java代码的开始!


网站公告

今日签到

点亮在社区的每一天
去签到