java - 封装的目的是什么?它提供安全层吗?

标签 java c# oop

正如我对封装的研究一样,它是关于隐藏数据以防止被操纵。为此,我们声明私有(private)变量,以便无法从类外访问它们。但我们可以使用 setter getter 方法在类外实现或访问它们。因此,如果我们必须使用 setter getter 方法来实现它,那么任何其他人都可以使用 setter getter 方法来实现它。 。那么我们如何才能免受操纵呢?

最佳答案

封装不是一种安全措施,因为它可以防止人们弄乱您的代码。从某种意义上说,这是一种安全措施,人们无法在不通过适当 channel 的情况下直接进入并更改变量。考虑以下伪代码。

class ProgressBar {
    public int maximum;
    public int current;
}

对比

class ProgressBar {
    private int maximum;
    private int current;

    ...
    public set_current(int amount) {
        if (amount <= this.maximum) this.current = amount;
    }
}

在上面的示例中,用户可以进入并扰乱电流并破坏 进度条。在下面的示例中,您的 setter 可以防止这种情况。

关于java - 封装的目的是什么?它提供安全层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56332669/

相关文章:

java - java中抽象类适合什么场景使用?

c# - 本地主机服务器的 SQL 连接字符串

python - 您可以在第一次访问对象属性时对其进行初始化吗?

java - 使用 Java 进行面向对象设计 - 强制转换和比基类具有更多成员变量的派生类

java - 如何将字符串中的每个字符转换为8位int? java

java - 如何在@ExceptionHandler 中获取 BindException 的根异常

java - 使用 parcelable 的 onListItemClick 未捕获的异常

c# - Entity Framework 在 x64 和 x86 上的启动速度要慢得多

c# - 如何获取使用 asp .net 检查的 gridview 中 CheckBoxes 的值

java - 多个 API 调用 : Design Patterns