专业的JAVA编程教程与资源

网站首页 > java教程 正文

二十九、Java面向对象编程特性-封装

temp10 2024-11-13 12:41:05 java教程 15 ℃ 0 评论

封装是面向对象编程(OOP)的三大核心特性之一,指将对象的状态(数据)和行为(方法)结合在一起作为一个独立的单元,并对外界隐藏其内部细节。在Java中,封装的核心思想是通过访问控制权限以及抽象的数据访问方式来实现的。

封装的好处

序号

二十九、Java面向对象编程特性-封装

好处

描述

1

数据保护

将成员变量设为私有(private),外界不能直接访问和修改对象的内部状态,从而防止了数据的随意篡改,确保了数据的安全性和一致性。

2

抽象简化

封装使得类能够对外提供简洁且一致的接口,使用者无需了解内部复杂的实现细节,只需通过公共方法与对象交互。

3

代码复用

封装后的类易于作为组件在多个程序中重复使用

4

降低耦合度

通过接口进行通信,而不是直接操作内部数据,降低了不同模块之间的耦合度,有利于软件的模块化设计和维护。

5

可维护性

封装将对象的实现细节隐藏起来,使得代码更容易理解和维护。当对象的内部实现发生变化时,只要接口保持不变,外部代码就不需要修改。

访问修饰符控制可见性

在Java中,有四种访问修饰符用于控制成员变量和方法的可见性:

  1. public:所有类都可以访问,不受包结构限制。
  2. protected:同一包内的其他类和所有子类都可以访问。
  3. (默认无修饰符):仅在同一包内的其他类可以访问,子类除非在同一个包内,否则无法访问。
  4. private:只有本类内部可以访问,对外部完全不可见。

实现方式

步骤

实现

1

将类的属性(变量)声明为私有的(使用private关键字)。

2

提供公共的getter方法来读取属性的值。

3

提供公共的setter方法来修改属性的值(如果需要的话)。

4

提供其他公共方法来执行与对象相关的操作。

Getter和Setter方法的应用

getter和setter方法通常用来实现封装。对于私有成员变量,我们会提供一对公共方法来进行间接访问和修改:

Bash
public class MyClass {
    private String myVariable; // 私有成员变量

    // Getter方法
    public String getMyVariable() {
        return this.myVariable;
    }

    // Setter方法
    public void setMyVariable(String value) {
        if (value != null && !value.isEmpty()) { // 可在此添加验证逻辑
            this.myVariable = value;
        } else {
            throw new IllegalArgumentException("Invalid value");
        }
    }
}

Getter方法的作用:

序号

作用

1

提供安全的方式读取私有变量的值,可以在方法内部添加逻辑,如格式化输出或检查值的有效性。

2

允许改变返回值的行为而不影响客户端代码(如添加缓存机制)。

Setter方法的作用:

序号

作用

1

提供安全的方式来设置私有变量的值,可以在方法内部实施边界条件检查、数据转换或触发相关业务逻辑。

2

可以防止外部直接修改成员变量,增强了对象状态的一致性。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表