Java bean类

时间:2012-04-10 08:39:39

标签: java

Bean类/封装意味着变量应该是私有的&吸气剂二传手应该公开。由于数据隐藏的原因。任何人都无法访问此变量。

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

其实我想得到一些解释,因为我不知道我正在做这样的项目。 如果有任何错误或不明确的问题,请原谅我。

请有人解释一下。

提前致谢

3 个答案:

答案 0 :(得分:2)

我刚才想到的几个理由:

  1. 您可以控制如何访问变量,例如,不允许在null中设置setter之类的无效值,甚至根本不允许使用setter作为只读变量。
  2. 您可以更改变量的结构,例如它的数据类型并保留settergetter定义而不做任何更改,因此您可以更轻松地进行内部更改/重构,而不会影响该类的所有用户。

答案 1 :(得分:1)

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

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

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

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

请记住,不是everey field需要getter和setter; - )

答案 2 :(得分:1)

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

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