在 Java 中,我们始终遵循封装规则,但是在我心中有一个悖论,在所有文档中,封装的概念都定义如下:
封装是一种将类中的字段设为私有并通过公共方法提供对字段的访问的技术。如果某个字段被声明为私有,那么该类之外的任何人都无法访问它。
我们将类内的所有变量定义为private
,以防止类外的任何人访问。
同样,我们正在为那些私有变量创建setter和getter,并且使用setter和getter可以让班外的任何人访问这些变量。
如果有人能帮助我弄清楚“封装”的概念,我将不胜感激。
我们不是通过声明private
并创建setter和getter来增加代码吗?
答案 0 :(得分:0)
参考:https://www.javatpoint.com/encapsulation
Java封装
Java封装是将代码和数据包装到一个单元中的过程,例如,将几种药物混合在一起的胶囊。
用Java封装 我们可以通过将类的所有数据成员设为私有来在Java中创建完全封装的类。现在,我们可以使用setter和getter方法来设置和获取其中的数据。
Java Bean类是完全封装的类的示例。
Java封装的优势
通过仅提供setter或getter方法,可以使类 只读或只写。换句话说,您可以跳过吸气剂或 设置方法。
它使您可以控制数据。假设您想要设置id的值(仅应大于100),则可以在setter方法中编写逻辑。您可以编写逻辑以免在setter方法中存储负数。
这是一种在Java中实现数据隐藏的方法,因为其他类将无法通过私有数据成员访问数据。
封装类易于测试。因此,最好是进行单元测试。
The standard IDE's
提供了生成getters
和setters
的功能。因此,使用Java创建封装类非常容易且快速。