当前位置:首页 > 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如何实现放大缩小

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

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

vue如何实现tap

vue如何实现tap

Vue 中实现类似移动端 tap 事件的方法 在 Vue 中可以通过以下几种方式实现类似移动端 tap(轻触)事件的效果: 使用第三方库 安装 v-tap 指令库可以快速实现 tap 事件: np…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何生成随机数

java如何生成随机数

生成随机数的方法 在Java中生成随机数可以通过多种方式实现,以下是几种常见的方法: 使用Math.random()方法 Math.random()方法返回一个double类型的伪随机数,范围在[0…

如何编译java

如何编译java

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