请告诉我强弱封装的区别w.r.t. java语言。 封装是数据及其相关功能在称为类的单个单元中的绑定。那么,这个术语意味着弱而强大的封装?
答案 0 :(得分:2)
封装是一种OOP概念,可以防止数据和功能受到外部干扰或误用。封装允许从客户端隐藏实现,并允许更改代码而不影响客户端。形容词'弱'或者' Strong'请参考代码中强制执行此概念的程度。
例如,假设您有一个名为Person
的类,其中包含一个名为name
的字段。封装建议隐藏"来自班级客户的这个领域,所以他不会伤害或滥用它。您可以通过创建name
属性private
来实现此类行为(因此唯一可以引用此属性的代码是实现Person
的代码)并提供getter方法{{1这会将name属性返回给客户端。这将被视为强大的封装 - 该属性不能从外部访问,不能被滥用。
弱封装将提供一种方法,作为副作用改变此属性的状态,并通过"暴露"财产并造成漏洞。
答案 1 :(得分:1)
这是基本的区别。它根据使用情况和观点而有所不同。
私有字段是强封装的示例。
公共字段是弱封装的示例。在这种情况下,字段仍然封装在类中,但对外部世界可见。
受保护/默认字段显示中等封装。
答案 2 :(得分:0)
强封装意味着实现抽象的代码可以 控制其字段的可见性(即可以访问它们的位置) 来自),没有任何可以被外部代码利用的漏洞 抽象的范围。弱封装允许这样的漏洞。
答案 3 :(得分:0)
强封装是指一个类,其中包含所有属性访问级别(作为私有)和每个方法(作为公共)。然后满足强封装,然后将该类称为强封装类。 通过“强封装”,我们无法直接在类外部访问任何属性。如果要访问或初始化属性的值。然后,我们应该运行公共方法。 弱封装就像类包含私有以外的任何属性访问级别和公共之外的方法访问级别一样。然后将该类称为“弱封装类”。
答案 4 :(得分:0)
private & geterMethod
=强封装
private & seterMethod
=弱封装