【问题标题】:Strong and Weak encapsulation in JavaJava中的强封装和弱封装
【发布时间】:2016-11-03 10:39:45
【问题描述】:

请告诉我强封装和弱封装 w.r.t 的区别。 java语言。 封装是数据的绑定,它的关联函数在一个称为类的单元中。那么,什么是弱封装和强封装呢?

【问题讨论】:

标签: java oop object computer-science


【解决方案1】:

封装是一种 OOP 概念,可防止数据和功能受到外部干扰或误用。封装允许对客户端隐藏实现,并允许在不影响客户端的情况下更改代码。形容词“弱”或“强”是指这个概念在你的代码中执行得有多好。

例如,假设您有一个名为Person 的类,其中有一个名为name 的字段。封装建议对班级的客户“隐藏”这个字段,这样他就不会伤害或滥用它。您可以通过将name 属性设置为private 来实现这种行为(因此唯一可以引用此属性的代码是实现Person 的代码)并提供一个getter 方法getName(),它将返回名称属性给客户。这将被认为是强封装——该属性不能从外部访问,也不能被滥用。

弱封装将提供一种方法,该方法作为副作用会更改此属性的状态,并通过“暴露”该属性并创建漏洞。

【讨论】:

    【解决方案2】:

    这是基本的区别。它因使用情况和观点而异。

    私有字段是强封装的例子。

    公共字段是弱封装的例子。在这种情况下,字段仍然封装在类中,但对外界可见。

    受保护/默认字段显示适度封装。

    【讨论】:

      【解决方案3】:

      强封装意味着实现抽象的代码可以 控制其字段的可见性(即可以访问它们的位置 from),没有任何可以被外部代码利用的漏洞 抽象的范围。弱封装允许这样的漏洞。

      【讨论】:

        【解决方案4】:

        强封装意味着一个包含所有属性访问级别为私有和每个方法为公共的类。然后满足强封装,然后该类称为强封装类。 通过强封装,我们不能直接从类外部访问任何属性。如果想访问或初始化属性的值。然后我们应该运行公共方法。 弱封装就像类包含私有以外的任何属性访问级别和公共以外的方法访问级别。然后该类称为弱封装类。

        【讨论】:

          【解决方案5】:

          private & geterMethod = 强封装

          private & seterMethod = 弱封装

          【讨论】:

            猜你喜欢
            • 2011-03-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-11
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多