首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的强封装和弱封装

Java中的强封装和弱封装
EN

Stack Overflow用户
提问于 2016-07-01 14:14:00
回答 5查看 3.8K关注 0票数 4

请告诉我强封装和弱封装的区别。java语言。封装是将数据及其相关函数绑定到称为类的单个单元中。那么,弱封装和强封装是什么意思呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-01 14:33:27

这是基本的区别。它根据用法和视点的不同而有所不同。

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

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

受保护/默认字段显示中等封装。

票数 1
EN

Stack Overflow用户

发布于 2016-07-01 16:48:53

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2016-07-01 16:29:37

强封装意味着实现抽象的代码可以控制其字段的可见性(即,可以从何处访问它们),而不会出现任何可被抽象作用域之外的代码利用的漏洞。弱封装允许这样的漏洞。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38138270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档