当前位置:首页 > 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 方法辅助公共方法完成功能:

java 如何实现封装

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

分享给朋友:

相关文章

vue自动登录如何实现

vue自动登录如何实现

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

vue如何实现mvvm

vue如何实现mvvm

Vue 的 MVVM 实现原理 Vue 通过数据绑定和响应式系统实现 MVVM(Model-View-ViewModel)模式。其核心在于将数据模型(Model)与视图(View)通过 ViewMod…

react如何实现混入

react如何实现混入

在React中实现混入(Mixin)功能可以通过以下几种方式实现,React官方已不推荐使用传统的React.createClass混入方式,但可通过高阶组件或自定义Hook替代。 高阶组件(HOC…

如何编译java

如何编译java

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证是否安装成功。若未安装,需从Oracl…

react如何实现分页

react如何实现分页

实现分页的基本思路 在React中实现分页通常需要以下几个核心步骤:管理当前页码状态、计算分页数据、渲染分页控件。以下是一个典型的分页实现方法。 管理分页状态 使用React的useState钩子来…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…