Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
JavaBean类_Java - Fatal编程技术网

JavaBean类

JavaBean类,java,Java,Bean类/封装意味着变量应该是私有的,getter和setter应该是公共的。由于数据隐藏的原因,任何人都无法从外部访问此变量 我的问题是:`使用getter/setter方法,我们可以从类外访问/设置变量。那么为什么我们需要将该变量保持私有-&我们如何判断这是数据隐藏 事实上,我想得到一些解释,因为我不知道我正在做这样的项目。 如果有任何错误或不清楚的问题,请原谅我 请任何人解释一下 提前感谢我刚才想到的几个原因: 您可以控制变量的访问方式,例如,不允许在setter中设置无效值,如null

Bean类/封装意味着变量应该是私有的,getter和setter应该是公共的。由于数据隐藏的原因,任何人都无法从外部访问此变量

我的问题是:`使用getter/setter方法,我们可以从类外访问/设置变量。那么为什么我们需要将该变量保持私有-&我们如何判断这是数据隐藏

事实上,我想得到一些解释,因为我不知道我正在做这样的项目。 如果有任何错误或不清楚的问题,请原谅我

请任何人解释一下


提前感谢

我刚才想到的几个原因:

  • 您可以控制变量的访问方式,例如,不允许在
    setter
    中设置无效值,如
    null
    ,甚至不允许只读变量使用setter
  • 您可以更改变量的结构,例如其数据类型,并保留
    setter
    getter
    定义,而不做任何更改,因此您可以更轻松地进行内部更改/重构,而不会影响类的所有用户

  • 我刚才想到的几个原因:

  • 您可以控制变量的访问方式,例如,不允许在
    setter
    中设置无效值,如
    null
    ,甚至不允许只读变量使用setter
  • 您可以更改变量的结构,例如其数据类型,并保留
    setter
    getter
    定义,而不做任何更改,因此您可以更轻松地进行内部更改/重构,而不会影响类的所有用户

  • getter/setter定义类的可读/写(或两者兼有)属性。 private字段声明此属性的一种可能的内部表示形式

    通过使用属性定义(getter和setter),可以定义对此字段的访问权限,也可以在setter上添加约束。对于集合,您可以确保只提供不可修改的版本

    此外,在重构期间,您还可以委托将值检索委托给另一个类或对象,而无需更改协作对象。您可以更改内部数据类型,例如,也可以构建数据类

    因此,封装内部状态并提供访问


    记住,并不是每个领域都需要接受者和接受者;-)

    getter/setter定义类的可读/写(或两者)属性。 private字段声明此属性的一种可能的内部表示形式

    通过使用属性定义(getter和setter),可以定义对此字段的访问权限,也可以在setter上添加约束。对于集合,您可以确保只提供不可修改的版本

    此外,在重构期间,您还可以委托将值检索委托给另一个类或对象,而无需更改协作对象。您可以更改内部数据类型,例如,也可以构建数据类

    因此,封装内部状态并提供访问

    记住,并不是每个领域都需要接受者和接受者;-)

    1)这样做实际上是在公开变量值,但它封装了变量值的计算方式。有了它,您可以根据需要在任何时间点更改变量值的计算方式

    2) 这种表示方式有助于“设计模式”。它说的是,每次客户机请求一个属性值时,您都可以将所有变量建模为单个对象并发送给客户机,而不是发送每个属性值。

    1)这样做,实际上是公开变量值,但它封装了变量值的计算方式。有了它,您可以根据需要在任何时间点更改变量值的计算方式


    2) 这种表示方式有助于“设计模式”。它说的是,每次客户要求一个属性值时,您都可以将所有变量建模为一个对象并发送给客户,而不是发送每个属性值。

    愚蠢的示例:您的变量可以是
    int
    ,但您可以通过解析它来获取并设置
    字符串
    值。。。以透明/不封闭的方式,我们可以使用
    setter/getter
    作为过滤器概念来复制。例如,如果您想授权任何调用
    setter
    的人,您可以在setter方法中执行此任务。愚蠢的示例:您的变量可以是
    int
    ,但您可以获取并设置一个
    字符串
    值来解析它。。。以透明/不封闭的方式,我们可以使用
    setter/getter
    作为过滤器概念来复制。例如,如果您想授权任何调用
    setter
    的人,您可以在setter方法中执行此任务。