0

Bean 类 /encapsulation 意味着变量应该是私有的 & getter & setter 应该是公共的。由于数据隐藏的原因。任何人都无法在外面访问此变量。

我的问题是:`使用 getter/setter 方法,我们可以从外部类访问/设置变量。那么为什么我们需要将该变量保持私有 && 我们如何判断这是数据隐藏?

实际上我喜欢得到一些解释,因为我不知道我正在做这样的项目。如果有任何错误或不清楚的问题,请原谅我。

请任何人解释这一点。

提前致谢

4

3 回答 3

2

我刚刚想到的几个原因:

  1. 您可以控制变量的访问方式,例如,不允许null在其中设置无效值,setter甚至根本不允许设置器用于只读变量。
  2. 您可以更改变量的结构,例如它的数据类型,并保持settergetter定义不做任何更改,因此您可以更轻松地进行内部更改/重构,而不会影响类的所有用户。
于 2012-04-10T08:43:40.000 回答
1

1) 通过这样做,您实际上是在公开变量值,但它封装了变量值的计算方式。有了这个,您可以根据您的要求在任何时间点更改变量值的计算方式。

2)这种表示方式有助于“传输对象”设计模式。它说的是,您可以将所有变量塑造成单个对象并将其发送给客户端,而不是每次客户端要求一个时发送每个属性值。

于 2012-04-10T09:13:16.707 回答
1

getter / setter 定义类的可读/可写(或两者)属性。私有字段声明了此属性的一种可能的内部表示。

通过使用属性定义(getter 和 setter),您可以定义对该字段的访问权限,也可以在 setter 上添加约束。如果是集合,您可以确保仅提供不可修改的版本。

您还可以在重构期间委托将值检索委托给另一个类或对象,而无需更改协作对象。您可以更改内部数据类型,例如也可以构建数据类。

因此,您封装内部状态并提供访问权限。

记住不是everey字段需要getter和setter ;-)

于 2012-04-10T08:52:39.070 回答