为什么“Set()”函数比修改公共变量更好?

时间:2012-02-26 22:50:46

标签: java android c++ private public

这个人现在困扰我一段时间了:))

假设我们有一个变量 - 为什么编写一个Set函数比简单地修改变量的数据(并将变量设置为public而不是private)更好?

这种编码方式较少,我看不到任何“安全”问题。

3 个答案:

答案 0 :(得分:7)

有时在设置变量时,您可能希望使用给定值执行其他操作,而不是立即将其放在类的变量中:例如,您可能希望验证它或更新另一个相关的值。

基本上,它允许拥有该变量的类控制可以对其执行的操作,以及更改时发生的特定事件系列。

答案 1 :(得分:2)

还需要提到的是,使用“set”方法并不总是更好。盲目遵守模式可能会导致代码过于复杂。如果class只是简单的(真的简单)数据容器,那么公共访问通常是可以接受的。例如,请查看java.awt.Rectanglejava.awt.Point类。

答案 2 :(得分:0)

这一切都与面向对象有关,以及你对该学说的严格程度。如果您严格遵循所有准则,那么直接使用一个类中的方法和标识符是不好的。从技术上讲,没有人反对。

这个讨论与静态讨论相同 - 没有静态讨论。 (自称)大师,发现亵渎,但你把你的电脑放在路上没有障碍,如果你把你的整个程序都是静态的。