抽象(abstraction)和封装(encapsulation)的区别

计算机程序设计是一个广阔的领域,在这一技术软件中有许多术语虽然来自通用语言,但含义不同。有两个相似的名字叫做封装和抽象。在广义的表达中,抽象是从一组其他项目中移除一个项目的过程,例如,我们从海水中除去盐。另一方面,封装是在一个安全的地方把东西放在一起的过程。在这种情况下,最好的例子是胶囊,胶囊中含有某种形式的药物。因此,在面向对象编程的情况下,抽象就是用户能够提取被认为重要的信息的过程,而在这样做...

主要区别

计算机程序设计是一个广阔的领域,在这一技术软件中有许多术语虽然来自通用语言,但含义不同。有两个相似的名字叫做封装和抽象。在广义的表达中,抽象是从一组其他项目中移除一个项目的过程,例如,我们从海水中除去盐。另一方面,封装是在一个安全的地方把东西放在一起的过程。在这种情况下,最好的例子是胶囊,胶囊中含有某种形式的药物。因此,在面向对象编程的情况下,抽象就是用户能够提取被认为重要的信息的过程,而在这样做的同时,忽略对当前过程不重要的信息。它可以被称为一个固定的过程,以获得所需的东西。封装是一种设置数据的过程,使必要的材料应该已经可见,而不需要的材料不应该是可见的,以避免任何不必要的问题。这两个术语是相反的,抽象处理的是过程的整体性质,而封装处理的是产生原始特征的过程。在保持对这些抽象的理解和隐藏的过程中,重点放在对这些术语的理解和隐藏上。当涉及到解决这两个问题时,有不同的标准。抽象处理在初始级别解决问题,而封装处理实现级别的问题解决。对于更复杂的编程解释,抽象是通过设计和抽象类来保证实现的安全性。而封装是在setter和getter的帮助下保持数据的安全。关于这两个术语可以给出更详细的说明,下面几段的解释将有助于正确理解它们。

比较图

目标抽象封装
定义获取信息的过程。包含信息的过程。
管理所需信息的获取方式可以是只提取必要的部分它所提供的信息是唯一必要的信息,所有其他无关的数据都已被隐藏
解决方案在接口层解决了这个问题。当代码实现时,问题就解决了。
例子**的外部按钮可以看作是抽象的。所有程序都存在的芯片可以看作是封装。

抽象的定义

对于面向对象编程,抽象是获取信息的过程。所需信息的获取方式可以是只提取必要的部分,而忽略那些被认为不太重要的部分。或者将不必要的信息排出,只保留敏感数据的完整性。在这种情况下,大多数类没有任何类型的实现,大多数问题解决过程都是在接口阶段完成的。抽象类已经存在,当我们必须共享公共函数时,可以使用它们,因此在抽象中,有可能创建新的变量。这个术语可以在日常使用中得到更好的解释,最好的定义是只处理思想而不处理事件的过程。不存在的东西,只是一个概念,叫做抽象。有不同类型的抽象模式,如数据、功能、合成、控制、资源和存储抽象,并且有不同的创建方法。所有这些因素都有助于呈现必要的统计信息,而不太重要的信息可以单独隐藏在主屏幕之外,这也可以称为普通语言中的数据隐藏。

封装的定义

封装是包含信息的过程。它所提供的信息是唯一必要的信息,所有其他无关的数据都已被隐藏起来。在这种情况下,问题的解决是在实施阶段完成的。有时它被认为是抽象的一种延伸,是一种在一个地方收集材料的过程,这与信息隐藏有很大的不同,它只显示被认为必要的信息。因此,它被用来对外行隐藏编程代码。为了更全面地理解这一概念,封装就是把东西放在胶囊里,只显示产品的基本特性。例如,当一个人在使用软件时,他们不知道编码是什么,他们只使用由编码产生的必要功能,这些功能在文件中是安全的。

一言以蔽之

  1. 抽象地说,问题是在接口级别解决的。在封装中,当代码实现时问题就解决了。
  2. 在抽象中,忽略敏感度较低的数据,只收集重要的数据,而在封装时,所有的信息都保存在一个地方,只显示较简单的数据。
  3. 在抽象上,重点是想法,而不是过程的细节。在封装中,对用户隐藏进程如何发生的细节是隐藏的。
  4. 所有有助于执行抽象的变量都被封装,但是所有导致封装的对象不需要被抽象。
  5. **的外部按键可以看作是抽象的,而**内部结构中所有编程都存在的芯片可以看作是封装。

对比视频

结论

抽象和封装是两个非常不同的术语,这也是本文所做的,以恰当的方式解释了它们之间的主要区别,这样人们就不会觉得很难正确理解它们的含义了,希望任务通过这个平台得以实现。

  • 发表于 2020-05-25 03:39
  • 阅读 ( 205 )
  • 分类:IT

你可能感兴趣的文章

游离神经末梢(free nerve endings)和封装的(encapsulated)的区别

...嘴唇。此外,它们对轻触有反应。 什么是包裹神经末梢(encapsulated nerve endings)? 与游离神经末梢不同,包裹的神经末梢不包含神经传递的开放端。因此,与游离神经末梢相比,包裹神经末梢的敏感性较低。一些机械感受器有包...

  • 发布于 2020-10-16 00:28
  • 阅读 ( 491 )

封装(encapsulation)和脱胶囊(decapsulation)的区别

.... 并列比较-以表格形式封装与去封装 6. 摘要 什么是封装(encapsulation)? 网络模型用于标准化网络通信。当从一个位置向另一个位置发送数据时,数据会经过许多层。TCP/IP模型有四层。它们是应用层、传输层、互联网层和网络接入...

  • 发布于 2020-10-19 15:30
  • 阅读 ( 476 )

数据隐藏(data hiding)和封装(encapsulation)的区别

数据隐藏(data hiding)和封装(encapsulation)的区别 面向对象程序设计(OOP)是程序设计的一个主要范式。它有助于使用对象开发程序或软件。对象是使用蓝图创建的。它被称为一个类。类由应该包含在对象中的属性和行为组成。类...

  • 发布于 2020-10-24 02:51
  • 阅读 ( 442 )

面向对象编程中抽象的初学者指南

... 什么是抽象什么(abstract and what)? ...

  • 发布于 2021-03-30 04:01
  • 阅读 ( 255 )

抽象(abstraction)和封装(encapsulation)的区别

...藏了一些东西,但是它们也有各自的区别。 什么是抽象(abstraction)? 抽象是一个基本的OOP概念,它只关注对象的相关数据,隐藏所有不相关的细节,这些细节可能是通用的,也可能不是专用的行为。它隐藏了背景细节,强调了减...

  • 发布于 2021-06-25 03:41
  • 阅读 ( 716 )

抽象类(abstract class)和java接口(interface in java)的区别

...们详细研究一下两者的区别。 什么是java中的抽象类(an abstract class in java)? Java中的抽象类是一个声明为抽象的类——它可能包含也可能不包含抽象方法。它与Java接口非常相似,只是它可以包含默认的方法实现。与面向对象编程...

  • 发布于 2021-06-25 03:52
  • 阅读 ( 300 )

混凝土(concrete)和抽象名词(abstract nouns)的区别

...ollective nouns, countable and uncountable nouns. 什么是抽象名词(an abstract noun)? 抽象名词是具体名词的对立面。抽象名词指思想、信仰、概念或事物的状态。它们指的是不能通过五种感官来体验的事物:视觉、声音、嗅觉、触觉和味觉。...

  • 发布于 2021-06-27 06:18
  • 阅读 ( 896 )

抽象类(abstract class)和java接口(interface in java)的区别

...键术语 抽象类、接口、多重继承 什么是java中的抽象类(abstract class in java)? 用abstract关键字声明的类称为抽象类。抽象类既可以有抽象方法,也可以有非抽象方法。类可以扩展抽象类并实现抽象类的抽象方法。不能从抽象类创...

  • 发布于 2021-07-01 01:29
  • 阅读 ( 276 )

工厂模式(factory pattern)和抽象工厂模式(abstract factory pattern)的区别

...ShapeFactory以获取所需的对象类型。 什么是抽象工厂模式(abstract factory pattern)? 抽象工厂模式使用超级工厂并创建其他工厂。它也被称为工厂的工厂。在这种模式中,接口创建相关对象的工厂,而不显式指定它们的类。换言之,...

  • 发布于 2021-07-01 06:13
  • 阅读 ( 187 )

数据隐藏(data hiding)和抽象(abstraction)的区别

...总的来说,数据隐藏有助于保护类的成员。 什么是抽象(abstraction)? 抽象隐藏了内部细节,只向用户显示功能。换句话说,它隐藏了实现细节,并向外界展示了功能。例如,假设一个真实世界的应用程序,例如移动电话。用户不...

  • 发布于 2021-07-01 13:14
  • 阅读 ( 307 )
新区送婆媳
新区送婆媳

0 篇文章

相关推荐