正如我对封装的研究一样,它是关于隐藏数据以防止被操纵。为此,我们声明私有(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/