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

抽象是一个广义的过程,在这个过程中,为了使数据具体化,额外的数据被取走并移除。在计算机中,它是一种编程方法,有助于将数据转换成简洁的形式。在这种方法中,数据和程序没有改变,而是以相同的初始形式保存;唯一的区别是它们被简化成了一个更小的可展示的形式。抽象试图减少和消除细节,这样程序员一次就可以专注于几个概念。...
关键区别:抽象和封装是计算机科学编程概念。抽象是一个过程,在这个过程中,数据的额外特征从数据中移除或分离出来;然而,封装是一种机制,其中数据被隐藏并捆绑在方法中。
抽象(abstraction)和封装(encapsulation)的区别

抽象是一个广义的过程,在这个过程中,为了使数据具体化,额外的数据被取走并移除。在计算机中,它是一种编程方法,有助于将数据转换成简洁的形式。在这种方法中,数据和程序没有改变,而是以相同的初始形式保存;唯一的区别是它们被简化成了一个更小的可展示的形式。抽象试图减少和消除细节,这样程序员一次就可以专注于几个概念。

一个系统可以有许多这样的抽象层,这些抽象层具有不同的含义和细节。例如,低级抽象层公开程序运行的计算机硬件的细节,而高级抽象层处理程序的业务逻辑。这些细节将在执行时暴露给程序员。抽象是一个概念或想法,它与任何特定的实例无关。它只捕获与其对象和当前透视图相关的数据的细节。它在对象族(在面向对象编程的概念中)中起着主要作用。并以不同的方式和实现使用。

抽象概念可以在以下方面实现:

  • 控制抽象:它是动作的抽象。
  • 数据抽象:它允许并以有意义的方式处理数据位和数据结构。
抽象(abstraction)和封装(encapsulation)的区别

计算机编程中的封装将其功能突出显示为两种不同的符号,如下所示:

  • 一种语言机制,用于限制对某些对象组件的访问。
  • 一种便于将数据与操作该数据的方法(和其他函数)捆绑在一起的语言结构。

封装是一种隐藏机制,在保护和保护数据不受外界影响方面起着至关重要的作用。它实际上通过防止对真实数据的滥用来提供数据的基本完整性。在封装中,数据以其原始有效且一致的格式存储和访问。

一般来说,封装意味着从用户那里保存一个对象,并用一般形式表示它。基本上,在封装中,额外的细节对外部环境是隐藏的。该机构直接对物体场进行检测和操作。信息隐藏和家具一起被编译成一个版本,这个版本被进一步用作源代码,并通过头文件进行接口。有时,公共类试图访问数据,在这些情况下,封装不允许公共入侵者使用数据。封装的主要好处之一是,它有助于降低程序的复杂性,并帮助用户理解程序的确切概念,因为机制只代表程序的简明形式。通过允许开发人员或程序员限制软件组件之间的相互依赖性,这增加了健壮性。封装也适用于一些语言,如Smalltalk和Ruby,其中只允许通过对象方法进行访问;而大多数其他人喜欢,C++,C语言或java提供了一定程度的控制程序。这些语言允许开发人员通过诸如public和private之类的关键字来访问隐藏的内容。

抽象和封装也是面向对象编程的主要基础。

抽象与封装的比较:

 

抽象 封装
简短描述 抽象是一个过程,它提取关于一个项目或一组项目的基本细节,而忽略不重要的细节。 封装是将数据包装或封装在胶囊中或使数据简洁的过程。
他们是 抽象涉及到隐藏表示不需要的数据的思想。 封装是将数据和功能组合在一起。
基本功能 基本上,抽象用于隐藏不需要的数据,并给出相关的数据。 基本上,封装意味着将代码和数据隐藏到单个单元中,以保护数据不受外界影响。
什么时候手术 它在设计层操作问题。 它在实现层操作问题。
对角色有利 它帮助用户关注对象做什么,而不是它如何做任何功能。 它帮助程序员隐藏对象如何做某事的内部细节或机制。
信息是 在这里,信息与真实数据是分开的。 这里的信息以隐藏格式包装。
布局 它与外部布局有关,用于设计方面。 它与内部布局有关,用于实现。
例如 **的外观,它有一个显示屏和按键来拨号。 **的内部实现细节,键盘按钮和显示屏是如何通过电路相互连接的。

  • 发表于 2021-07-13 20:16
  • 阅读 ( 247 )
  • 分类:通用

你可能感兴趣的文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 发布于 2021-07-01 13:14
  • 阅读 ( 321 )
eemq0448
eemq0448

0 篇文章

相关推荐