gpt4 book ai didi

java - 封装广义理论

转载 作者:行者123 更新时间:2023-11-30 09:12:40 24 4
gpt4 key购买 nike

正在学习Java,来到了本书的封装部分。

对于数据“隐藏”,封装的重点是保护原始变量不被程序的任何部分更改吗?

setter 是否允许您仅在真正需要时才允许更改变量?就像在类本身中设置的条件一样。

举个例子。我有一个“银行余额”,如果我要买东西,我想看看余额,但还没有“收费”,所以这个变量在收费完成后才会改变,从而满足银行为真实余额设定的条件。

这是一个非常广泛的例子,我意识到我可以这样编码,我只是作为一个例子问。

最佳答案

区别不在于基元和对象,而是私有(private)和公共(public)状态。例如,对于电视,您关心音量设置和它打开的 channel ,但用户不需要知道(也不应该关心)发送到放大器和 PLL 芯片的实际 I2C 命令。

封装意味着明确定义哪些项目是面向公众的,然后隐藏其余项目,这样一来,实现者就可以更改完成工作的确切方式,这样客户就不会搞砸封装服务的操作。

例如,Setter 的存在使对象可以控制其状态如何以及是否更新。例如,方法 TV#setChannel() 可能会更改电视上的 channel 字段,但它还会执行一些其他操作来更改调谐器的频率设置,或者在屏幕上显示新 channel 等等。客户端代码不应该担心(或者有时甚至不知道)任何这些。

在银行转帐的情况下,还有许多其他注意事项,因为通常必须同时进行多项操作。需要的不仅仅是对象级封装,但防止客户端代码直接破坏余额是所需解决方案的一部分。

关于java - 封装广义理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21445624/

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