当前位置:首页 > Java

java 如何封装

2026-03-03 02:42:33Java

封装的概念

封装是面向对象编程的三大特性之一(封装、继承、多态),指将对象的属性和行为(数据和方法)捆绑在一起,并对外隐藏内部实现细节。通过访问修饰符(如 privateprotectedpublic)控制数据的访问权限,确保数据安全性和代码可维护性。

封装的核心步骤

定义私有属性
使用 private 修饰类的成员变量,禁止外部直接访问。例如:

private String name;
private int age;

提供公共方法(Getter/Setter)
通过 public 方法间接访问或修改私有属性,可在方法中添加逻辑控制。例如:

public String getName() {
    return name;
}

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

构造方法封装
通过构造方法初始化对象时对属性赋值,可加入验证逻辑。例如:

java 如何封装

public Person(String name, int age) {
    this.name = name;
    if (age > 0) {
        this.age = age;
    }
}

封装的优点

  • 数据保护:防止外部代码随意修改对象状态。
  • 灵活性:可在方法内部修改实现而不影响调用方。
  • 易于维护:集中控制数据逻辑,减少代码重复。

完整示例

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        setName(name);
        setAge(age);
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 0) {
            this.age = age;
        }
    }
}

通过以上方式,实现了对 Person 类属性的安全封装。

标签: java
分享给朋友:

相关文章

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何产生随机数

java如何产生随机数

使用 Math.random() 方法 Math.random() 生成一个范围在 [0.0, 1.0) 的伪随机 double 值。通过缩放和偏移可以生成指定范围的随机数。 double ra…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

win7如何配置java环境变量

win7如何配置java环境变量

下载并安装Java 从Oracle官网下载适合的Java Development Kit (JDK)安装包,选择与系统位数(32位或64位)匹配的版本。运行安装程序,按照提示完成安装,默认路径通常为C…

如何学习好java

如何学习好java

掌握Java基础知识 学习Java的第一步是掌握其基础知识,包括数据类型、变量、运算符、控制流语句(如if-else、for循环、while循环)以及数组。这些是构建更复杂程序的基石。可以通过在线教程…

java下载功能vue实现

java下载功能vue实现

Java 后端文件下载功能实现 后端需提供文件下载的接口,通常使用 HttpServletResponse 实现。以下是一个简单的 Java Spring Boot 示例: @GetMapping(…