Bean 类 /encapsulation 意味着变量应该是私有的 & getter & setter 应该是公共的。由于数据隐藏的原因。任何人都无法在外面访问此变量。
我的问题是:`使用 getter/setter 方法,我们可以从外部类访问/设置变量。那么为什么我们需要将该变量保持私有 && 我们如何判断这是数据隐藏?
实际上我喜欢得到一些解释,因为我不知道我正在做这样的项目。如果有任何错误或不清楚的问题,请原谅我。
请任何人解释这一点。
提前致谢
Bean 类 /encapsulation 意味着变量应该是私有的 & getter & setter 应该是公共的。由于数据隐藏的原因。任何人都无法在外面访问此变量。
我的问题是:`使用 getter/setter 方法,我们可以从外部类访问/设置变量。那么为什么我们需要将该变量保持私有 && 我们如何判断这是数据隐藏?
实际上我喜欢得到一些解释,因为我不知道我正在做这样的项目。如果有任何错误或不清楚的问题,请原谅我。
请任何人解释这一点。
提前致谢
我刚刚想到的几个原因:
null
在其中设置无效值,setter
甚至根本不允许设置器用于只读变量。setter
和getter
定义不做任何更改,因此您可以更轻松地进行内部更改/重构,而不会影响类的所有用户。1) 通过这样做,您实际上是在公开变量值,但它封装了变量值的计算方式。有了这个,您可以根据您的要求在任何时间点更改变量值的计算方式。
2)这种表示方式有助于“传输对象”设计模式。它说的是,您可以将所有变量塑造成单个对象并将其发送给客户端,而不是每次客户端要求一个时发送每个属性值。
getter / setter 定义类的可读/可写(或两者)属性。私有字段声明了此属性的一种可能的内部表示。
通过使用属性定义(getter 和 setter),您可以定义对该字段的访问权限,也可以在 setter 上添加约束。如果是集合,您可以确保仅提供不可修改的版本。
您还可以在重构期间委托将值检索委托给另一个类或对象,而无需更改协作对象。您可以更改内部数据类型,例如也可以构建数据类。
因此,您封装内部状态并提供访问权限。
记住不是everey字段需要getter和setter ;-)