java - 为什么我们在 java 中将变量声明为私有(private)

标签 java private encapsulation public

<分区>

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

提前致谢..

最佳答案

这就是 encapsualtion 的目的.

考虑拥有一个 age 属性,并且您想对其进行一些控制。如果您只是公开您的字段,那么您可以从外部访问它并用它做任何您想做的事情。然后,检查年龄是否有效可能会有点麻烦。

也就是说,使用 setter 方法,例如,您可以有一个适当的验证机制。这使您可以控制访问和更改变量的方式和时间。

这同样适用于 getter 方法。想象一下,您有一些不想公开的内部结构,例如,您在内部使用枚举。但是,您不想在类外展示它。因此,例如,在您的 getter 中,您生成了您想要生成的任何值的字符串版本。

关于java - 为什么我们在 java 中将变量声明为私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16161719/

相关文章:

java - @JsonInclude(Include.NON_NULL) 没有按预期工作

java - StringBuilder容量()

Python:带有双下划线的类

java - 如何防止 JGrasp 记录私有(private)类和变量?

java - 封装和 setter/getter

java - 封装,getter返回null或0

java - JBoss 准备语句太慢

java - Java 32 位对 Win(任何)64 位的影响?

javascript - 类中的私有(private)原型(prototype)

c# - 创建简单高效值类型的模式