为什么我们在java中将变量声明为私有

sam*_*mba 2 java encapsulation private public

通常在java bean类中,我们将变量声明为private.无论如何,我们将setter和getter方法声明为public.然后我们就可以获得并设置属性的值.那么在这里将变量声明为私有的用途是什么?如果我宣布为公开会怎样?

提前致谢..

npi*_*nti 9

这就是封装的目的.

考虑拥有一个age属性,你想对它有一些控制权.如果您将字段简单地公开,则可以从外部访问它并随意执行任何操作.然后,检查年龄是否有效可能有点麻烦.

话虽如此,使用setter方法,您可以使用适当的验证机制.这使您可以控制访问和更改变量的方式和时间.

这同样适用于getter方法.想象一下,你有一些你不想暴露的内部结构,比如你在内部使用枚举.但是,您不希望在课堂外显示此信息.因此,例如,在getter中,您将获得要生成的任何值的字符串版本.