【发布时间】:2014-01-30 00:30:11
【问题描述】:
我正在学习 Java,并已来到本书的封装部分。
对于数据“隐藏”,封装的重点是保护原始变量不被程序的任何部分更改吗?
那里的设置器是否允许您仅在真正需要时才允许更改变量?就像在类本身中设置条件一样。
举个例子。我有一个“银行余额”,如果我要买东西,我想看看余额,但它还没有被“收费”,所以在收费完成之前变量不会改变,从而满足银行为真实余额设定的条件。
这是一个非常广泛的例子,我意识到我可以这样编码,我只是作为一个例子询问。
【问题讨论】:
-
实际上,setter 在封装方面是一种不好的做法,请参阅javaworld.com/article/2073723/core-java/…
-
嗯,他们可能是不好的做法。如果对象的“设置某某属性”的概念是合乎逻辑的,那么它们是可以的,例如“设置图形小部件的背景颜色”。如果您将其视为授予设置变量(而不是“属性”)的能力,那么它可能是错误的概念。
标签: java oop encapsulation