当前位置:首页 > Java

java 如何实现封装

2026-02-05 01:12:40Java

封装的概念

封装是面向对象编程的三大特性之一,指将对象的属性和行为(方法)隐藏起来,仅通过公开的接口与外界交互。通过封装可以提高代码的安全性、可维护性和复用性。

实现封装的方法

使用访问修饰符
Java 提供了 privateprotectedpublic 和默认(无修饰符)四种访问修饰符来控制成员的可访问性:

  • private:仅当前类内部可访问,外部无法直接访问。
  • protected:当前类、子类及同包类可访问。
  • public:所有类均可访问。
  • 默认(无修饰符):同包类可访问。
public class Person {
    private String name; // 私有属性,外部无法直接访问
    private int age;

    // 公开的getter方法提供读取权限
    public String getName() {
        return name;
    }

    // 公开的setter方法提供修改权限
    public void setName(String name) {
        this.name = name;
    }
}

通过方法暴露操作
将属性设为 private,通过公共方法(如 gettersetter)控制对属性的访问和修改,可在方法中添加逻辑校验。

public void setAge(int age) {
    if (age > 0 && age < 150) { // 添加校验逻辑
        this.age = age;
    } else {
        throw new IllegalArgumentException("Invalid age");
    }
}

隐藏实现细节
仅对外暴露必要的接口,内部复杂的实现逻辑对外不可见。例如,使用 private 方法辅助公共方法完成功能:

public class BankAccount {
    private double balance;

    public void deposit(double amount) {
        validateAmount(amount); // 内部私有方法
        balance += amount;
    }

    private void validateAmount(double amount) {
        if (amount <= 0) {
            throw new IllegalArgumentException("Amount must be positive");
        }
    }
}

封装的优点

  • 安全性:防止外部直接修改敏感数据。
  • 灵活性:内部逻辑变更不影响外部调用。
  • 可维护性:通过方法集中管理属性,便于调试和扩展。

示例代码

public class Student {
    private String id;
    private double gpa;

    // 通过公共方法控制访问
    public String getId() {
        return id;
    }

    public void setId(String id) {
        if (id != null && !id.isEmpty()) {
            this.id = id;
        }
    }

    public double getGpa() {
        return gpa;
    }

    public void setGpa(double gpa) {
        if (gpa >= 0 && gpa <= 4.0) {
            this.gpa = gpa;
        }
    }
}

java 如何实现封装

分享给朋友:

相关文章

vue如何实现放大缩小

vue如何实现放大缩小

Vue 实现放大缩小功能 在 Vue 中实现放大缩小功能可以通过多种方式实现,以下介绍几种常见的方法: 使用 CSS transform 缩放 通过绑定 CSS 的 transform: scal…

vue如何实现到期提醒

vue如何实现到期提醒

实现思路 在Vue中实现到期提醒功能,可以通过计算日期差、定时检查和通知用户三个核心步骤完成。需要结合Vue的响应式特性和JavaScript的日期处理能力。 计算日期差 使用JavaScript…

vue自动登录如何实现

vue自动登录如何实现

实现自动登录的基本思路 自动登录通常通过结合本地存储(如localStorage或cookie)和token验证机制实现。用户首次登录成功后,服务器返回的认证token会被保存在客户端,下次打开应用时…

vue中如何实现循环

vue中如何实现循环

循环渲染列表数据 在Vue中,使用v-for指令实现循环渲染。基本语法为v-for="(item, index) in items",其中items是数据源数组,item是当前遍历的元素,index是…

如何用java

如何用java

用Java实现基础功能 Java是一种广泛使用的编程语言,适用于开发各种应用程序。以下是几个常见功能的实现方法。 打印"Hello, World!" public class HelloWorld…

vue如何实现

vue如何实现

Vue 实现方法 Vue 提供了多种方式来实现功能,具体取决于需求。以下是一些常见场景的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。在组件中可以通过 pro…