Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:封装概念_Java_Encapsulation - Fatal编程技术网

Java:封装概念

Java:封装概念,java,encapsulation,Java,Encapsulation,在Java中,我们总是遵循封装规则,但我认为有一个悖论,在所有文档中,封装的概念定义如下: 封装是将类中的字段设置为私有并通过公共方法提供对字段的访问的技术。如果一个字段被声明为private,则该类之外的任何人都无法访问该字段 我们将类内的所有变量定义为private,以避免类外的任何人访问 我们再次为这些私有变量创建setter和getter,这些变量可以通过setter和getter为类外的任何人访问 如果有人能帮我弄清楚封装的概念,我将不胜感激 我们不是通过声明private并创建set

Java中,我们总是遵循封装规则,但我认为有一个悖论,在所有文档中,封装的概念定义如下:

封装是将类中的字段设置为私有并通过公共方法提供对字段的访问的技术。如果一个字段被声明为private,则该类之外的任何人都无法访问该字段

我们将类内的所有变量定义为
private
,以避免类外的任何人访问

我们再次为这些私有变量创建setter和getter,这些变量可以通过setter和getter为类外的任何人访问

如果有人能帮我弄清楚封装的概念,我将不胜感激

我们不是通过声明
private
并创建setter和getter来增加代码吗?

Ref:

Java封装

Java中的封装是将代码和数据包装到一个单元中的过程,例如,混合了几种药物的胶囊

java封装 我们可以通过使类的所有数据成员私有化,在Java中创建一个完全封装的类。现在我们可以使用setter和getter方法来设置和获取其中的数据

JavaBean类是完全封装的类的示例

Java封装的优势

通过只提供setter或getter方法,可以使类 只读或只写。换句话说,您可以跳过getter或 setter方法


它为您提供了对数据的控制。假设您只想设置id的值,该值应该大于100,那么可以在setter方法中写入逻辑。您可以编写不在setter方法中存储负数的逻辑

这是一种在Java中实现数据隐藏的方法,因为其他类将无法通过私有数据成员访问数据

封装类很容易测试。因此,单元测试更好


标准IDE的
提供了生成
getter
setter
的工具。因此,用Java创建封装类既简单又快速。

它为您提供了对数据的控制。假设您只想设置id的值,该值应该大于100,那么可以在setter方法中写入逻辑。您可以编写逻辑,在setter方法中不存储负数……是的,谢谢