This question already has answers here:
Why use getters and setters/accessors?

(38个答案)


7年前关闭。





通常,在Java bean类中,我们将变量声明为私有。无论如何,我们将setter和getter方法声明为公共方法。这样我们就可以获取并设置属性的值。那么在这里将变量声明为私有有什么用?如果我宣布公开,该怎么办?

提前致谢..

最佳答案

这就是encapsualtion的目的。

考虑拥有一个age属性,并且您希望对其有所控制。如果您只是公开地公开自己的领域,则可以从外部访问它,并随心所欲地做任何事情。然后,检查年龄是否有效可能会有些麻烦。

话虽这么说,使用setter方法,例如,您可以建立验证机制。这使您可以控制如何以及何时访问和更改变量。

吸气方法也是如此。假设您有一些内部结构不想公开,例如,您在内部使用枚举。但是,您不想在课堂之外展示它。因此,例如,在您的getter中,您将生成要生成的任何值的字符串版本。

10-05 18:34