spa*_*ama 7 java access-modifiers
我知道这适用于许多语言,而不仅仅是Java,但这是我最熟悉的语言.
我理解修饰符的作用以及如何使用它们.我只是想知道,为什么我们需要它们?为什么不能访问每个对象,无论它是否需要?
Phi*_*ipp 16
当你必须维护一个更大的项目时,原因会变得更加明显.当方法或变量是公共的时,在对其进行更改时必须要小心,因为您永远不知道代码库的哪些部分依赖于其确切的行为.
但是当变量或方法是私有的时,你知道它不是在类之外使用的.这意味着当您进行更改时,您需要注意的代码要少得多.
通过将类功能设为私有和公共,您可以清楚地将接口与外部世界分隔开来.您暴露于外部世界的次数越少,您对内部实施所做的事情就越自由.
例如,当您始终将变量设为私有并通过getter和setter访问它们时,您可以稍后将它们从变量更改为计算值,然后甚至为了性能原因将缓存添加到计算中.如果它是一个公共变量,则必须在使用变量的任何地方更改代码.但是当你通过getter和setter将它暴露给外面的世界时,所有其他代码都可以继续使用该类,就好像什么都没有改变一样.