当前位置: 首页 > 知识库问答 >
问题:

封装与抽象真实世界示例

公冶鸣
2023-03-14

以封装为例,我可以想到用户和手机之间的交互。用户不需要知道手机的内部工作情况就可以进行操作,因此这称为抽象。但是封装在这个例子中的什么地方呢?有人能解释一下吗?

共有3个答案

司易安
2023-03-14

一般来说,抽象只是将复杂的东西隐藏在特定过程后面,使过程看起来简单
示例:监视器开/关::--用户不需要了解监视器开/关时发生的所有芯片功能。。他所需要知道的是,显示器上的开功能是开的,显示器上的开功能是关的。。。

或者最好找一辆车——每个人都知道有一种特殊的变速器可以换档,没有人想知道变速器的所有功能。。因此,这就是抽象(避免不必要的实现以防止复杂性)。

因此,如果开发人员提供了一个良好的抽象,用户就不会被诱惑去窥视对象的内部机制

抽象是通过使具有一个或多个方法的类抽象来实现的。这只不过是基本特征,应该由扩展它的类来实现。例如当你发明/设计一辆汽车时,你定义了一个特征,比如汽车应该有4个门、刹车、方向盘等...所以任何使用这种设计的人都应该包括这个特点。实现不是抽象的每一个头部。它只是定义应该包括的特征。

封装是限制用户遵循特定过程来对特定过程进行权限改造。它只是提供安全性并确保系统鲁棒性。

我们可以把公司的人力资源看作是一个按照封装<代码>工作的人。i、 e.我们不能直接与其他部门沟通,我们需要通过人力资源部与他们沟通。这确保了公司记录的安全性和更好的维护。

我们可以一起举一个UnderER CONSTRUCTION BUILDING...的例子,在那里我们可以说像“经理人数”这样的事情。

但是,与此同时,将每一个这样的领域纳入承包商,作为工人和建筑投资者之间的调解人,可以被视为封装。作为,它隐藏所有上述属性到一个实体。

因此,如果您到目前为止还理解,您可以说抽象只是封装的一个子集。i、 每一个执行抽象的实体都是在内部封装的,但是每一个显示封装的东西不一定总是抽象的。

例如。ToString()方法定义在几乎每个类是实现的抽象,因为我们不功能内,我们所关心的是,它改变几乎所有字符串。当它组装一个单元时,它也被封装了...但是,我们通过Properties隐藏和访问的私有成员只是封装的一个例子,因为它基本上保持了数据安全...!!

希望这能回答你的问题。。!!

越狐若
2023-03-14

抽象:你永远不会买“设备”,但总是买更具体的东西: iPhone、GSII、诺基亚3310...在这里,iPhone、GSII和N3310是具体的东西,设备是抽象的。

封装:你有几个设备,它们都有一个USB端口。你不知道背面是什么样的印刷电路,你只需要知道你能将USB电缆插入其中。

抽象是一个概念,封装允许抽象。我的例子不是最好的(这两个块之间没有真正的联系)。

您可以在不使用抽象的情况下进行封装,但如果您想在项目中使用一些抽象,则需要进行封装。

葛哲彦
2023-03-14

封装是实现“信息隐藏”的一种方法,因此,按照您的示例,您不需要“了解手机的内部工作情况”就可以使用它。您有一个使用设备行为的接口,而不知道实现细节。

另一方面,抽象可以解释为为不同的对象使用相同接口的能力。同一接口的不同实现可以存在。通过封装隐藏细节。

 类似资料:
  • 问题内容: 以封装为例,我可以想到用户与手机之间的交互。用户不需要知道手机的内部工作即可操作,因此这称为抽象。但是封装适合本例吗?有人可以对此进行说明吗? 问题答案: 封装是一种实现“信息隐藏”的方法,因此,按照您的示例,您不需要“知道移动电话的内部工作原理”。您有一个界面来使用设备行为而无需了解实施细节。 另一方面,抽象可以解释为对不同对象使用相同接口的能力。可以存在同一接口的不同实现。细节通过

  • 我今天有个面试。我有一个来自OOP的问题,关于封装之间的区别 我告诉她,封装基本上是绑定数据成员 在提出这个问题之前,我阅读了StackOverFlow上的其他线程,了解这两个OOPs概念之间的区别。但我发现自己无法说服面试官。 有人能举个最简单的例子来证明吗?

  • 我正在学习php中的面向对象编程,我在网上找到的所有例子都没有意义。像动物,自行车等例子对我来说没有意义,我需要现实生活中的日常例子,像验证,CRUD等。 有谁能给出一个实际生活中的日常OOP的php例子,或者建议一篇文章或教程,使我更好地理解OOP

  • 4.2.真实世界的例子 我们要做的是一个Twitter应用。用户的需求很清楚,那就是发新消息、查看朋友的新消息,这也正是它的基本功能。除此之外,我们还需要事先获知用户的用户名和密码才能登录Twitter。由此可知,我们需要三个界面。 其次,我们希望应用程序能够流畅地运行,而回避开网络连接情况的影响。应用程序应该只在设备联网时抓取Twitter消息,并缓存到本地。为此,我们需要用到一个后台运行的Se

  • Truffle provides contract abstractions for interacting with your contracts. Skip ahead to the api section for a list of contract methods. 使用方法 To obtain a contract abstraction you can require it with

  • 我正在学习Spring,我学习了bean范围——它们的实际用例是什么,我无法得到任何帮助。请帮助我们在Spring中何时使用单例、原型、请求和会话范围。