gpt4 book ai didi

Java setter 和 getter?

转载 作者:行者123 更新时间:2023-11-29 09:35:09 25 4
gpt4 key购买 nike

大家都知道Java支持数据隐藏

我去面试了。然后面试官问我Java是否支持使用private作为数据类型进行数据隐藏。

他说,如果我们在该类中使用 setter 和 getter,那么通过使用这些 setter 和 getter,我们可以轻松获取私有(private)数据。

那么这如何支持数据隐藏在这里?

他可能是想让我落入陷阱。但我无法回复。

我应该回复什么?

最佳答案

他争辩说,如果“数据隐藏”是 OOP 原则,那么我们不是通过 getter 和 setter 公开来破坏它。我认为他希望您阐明能够直接访问数据成员与通过 getter 或 setter 访问数据成员之间的原则区别。在前一种情况下,类的客户端可能会错误处理数据,为其分配类设计者未设计类处理的值(例如将学生的年龄设置为 500)。在后者(使用 setter )中,类设计者对可以分配给数据的值施加了某些限制。在年龄示例中,setter 可能是这样的:

void setAge(int age) {
if(age<3 || age>100)
return;
this.age=age;
}

假设不允许 3 岁以下和 100 岁以上的学生。因此,您仍然隐藏了您的数据,但允许以与您的模块逻辑一致的方式对其进行操作。

关于Java setter 和 getter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9193808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com