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

抽象和数据隐藏是面向对象程序设计的重要概念。抽象是一个通过对背景细节进行输出来表达关键属性的过程,而数据隐藏则将数据与程序直接访问隔离开来。然而,这两个概念听起来都是相似的,但它们是不同的。抽象提供了一种方法,用于使用相同的属性来生成用户定义的数据类型,以设计使用相同属性的真实对象,而隐藏数据和函数可以防止未经授权的访问。...

抽象和数据隐藏是面向对象程序设计的重要概念。抽象是一个通过对背景细节进行输出来表达关键属性的过程,而数据隐藏则将数据与程序直接访问隔离开来。然而,这两个概念听起来都是相似的,但它们是不同的。抽象提供了一种方法,用于使用相同的属性来生成用户定义的数据类型,以设计使用相同属性的真实对象,而隐藏数据和函数可以防止未经授权的访问。

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

比较图

基础 抽象 数据隐藏
定义 只提取相关信息,忽略所有重要细节。 从程序的各个部分隐藏所有数据。
等级 类使用抽象来派生新的用户定义的数据类型。 在类中使用数据隐藏技术使其数据私有化。
目的 隐藏复杂性。 实现封装。
聚焦 数据的可观察行为。 允许或限制在胶囊中使用数据。

什么是抽象(abstraction)?

抽象被用来隐藏复杂性。抽象只提取相关信息,忽略所有不必要的细节。它指示了一个对象的必要属性,它将其与其他类型的对象区分开来。抽象集中在对象的外部方面。抽象提供了这一关键行为与实现的分离。它指定相对于查看器外观的概念边界。适当的抽象突出了对用户或读者来说非常重要的细节,并简化了那些不相关和不一致的特性。

用户定义的数据类型是通过在类中指定抽象属性和函数来创建的,这些抽象属性和函数用于设计具有相似属性的真实对象。这些属性称为数据成员,因为它们包含信息。同样,对这些数据进行操作的函数称为成员函数。数据抽象被实现为一个表示重要属性的类,而不包括背景解释。

抽象类型:

  • Procedural Abstraction: Procedural Abstraction includes series of the directi*** using the specified functi***.
  • Data Abstraction: It is a set of data that describes and specifies a data objects.
  • Control Abstraction:  It is a program control mechani** where interior details are not specified.

什么是数据隐藏(data hiding)?

数据隐藏建议隐藏程序的组件中不需要检索的数据。程序将数据与直接访问隔离为数据隐藏或信息隐藏。为了执行数据隐藏,封装是在类的数据和函数受到保护不被授权访问的地方使用的。相反,一旦数据和函数封装到一个单元中,就称为封装。因此,数据隐藏有助于实现封装。可以通过访问说明符管理项目的操作详细信息。

通过使用数据隐藏概念,类中的数据和函数是私有的,因此类外的函数无法访问这些数据和函数,并防止意外更改。

中间抽象(**etween abstraction)和数据隐藏(data hiding)的区别

  1. 抽象只显示提升信息,并拒绝基本细节,而数据隐藏则用于隐藏程序部分的数据。
  2. 抽象的先前目的是要描述程序或应用程序的复杂实现细节。另一方面,实现了数据隐藏,实现了封装。
  3. 抽象用于类中,使新的用户定义DataType,而类中数据隐藏用于使数据私有化。
  4. 抽象集中在数据和数据隐藏限制的可观测行为上,或者允许在封装中使用数据。

结论

这两种抽象和数据隐藏的目的都是为了只显示所需的信息,而隐藏它们的本质细节,但目的都很明确。抽象在隐藏实现中突出了复杂性另一方面在数据隐藏中突出了对未经授权访问的数据保护。

  • 发表于 2021-07-08 07:24
  • 阅读 ( 250 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

摘要(abstract)和具体思路(concrete thinking)的区别

...这两个术语,并找出它们之间的差异。 什么是抽象思维(abstract thinking)? 首先,抽象思维可以解释为一种思维方式,这种思维方式集中于对某一事物的概念化或概括化。一个抽象的思考者可以从别人看不到的角度来看待一个特定...

  • 发布于 2020-11-04 10:41
  • 阅读 ( 426 )

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

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

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

抽象类(abstract class)和c中的接口#(interface in c#)的区别

...让我们详细讨论一下两者的理论方面。 什么是抽象类(an abstract class)? 抽象类是一种特殊类型的类,它充当其他类的基,不能实例化。抽象类的实现逻辑由其派生类提供。为了使一个类抽象,使用了“abstract”修饰符,这意味着...

  • 发布于 2021-06-25 03:34
  • 阅读 ( 355 )

抽象(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
  • 阅读 ( 302 )

抽象(abstraction)和虚拟化(virtualization)的区别

...允许多个虚拟机在单个物理机上运行。   什么是抽象(abstraction)? 抽象是在向用户和开发人员隐藏背景细节的同时表示基本特性的行为。虚拟化类似于抽象,但它并不总是隐藏底层的细节。抽象一词在计算行业中有多个层次的...

  • 发布于 2021-06-26 12:32
  • 阅读 ( 491 )

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

...键术语 数据抽象、封装、面向对象 什么是数据抽象(data abstraction)? 数据抽象是指隐藏内部细节,只显示功能。换句话说,它隐藏了实现细节,只是向外界展示了特性。一个现实世界的例子是电视。用户不需要知道内部电子电...

  • 发布于 2021-06-30 17:01
  • 阅读 ( 1215 )

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

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

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

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

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

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

0 篇文章

相关推荐