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

封装和抽象是OOP(面向对象编程)语言中两个不同但又相关的概念。封装是将数据和行为作为单个实体组合在一起的概念。另一方面,抽象是表示实体行为与实现方式的过程。...

封装与抽象

封装和抽象是OOP(面向对象编程)语言中两个不同但又相关的概念。封装是将数据和行为作为单个实体组合在一起的概念。另一方面,抽象是表示实体行为与实现方式的过程。

什么是封装?

封装是将数据和操作它们的操作封装到单个实体中的过程。这实际上意味着为了访问数据,应该使用某些预定义的方法。换句话说,封装的数据不能直接访问。这确保了数据的完整性,因为用户无法按自己的意愿直接访问和修改数据。用户只能通过对用户公开可用的方法来获取或设置数据值。这些方法通常提供数据验证,以便只允许在字段中**适当格式的数据。因此,封装的好处有三个方面。通过封装,程序员可以使类的字段变为只读或只写。其次,类可以完全控制存储在其字段中的内容。最后,类的用户不必担心它的数据是如何存储的。在Java中,程序员可以将所有实例变量声明为private,并提供get和set方法(公共的)来访问和修改私有字段。

什么是抽象?

抽象是将表示细节与实现细节分离的过程。开发者松了一口气,这样做的细节就更复杂了。相反,程序员可以专注于实体的表示或行为细节。简单地说,抽象关注的是如何使用某个实体,而不是如何实现它。抽象本质上隐藏了实现的细节,这样即使实现方法随着时间的推移而改变,程序员也不必担心它会如何影响他的程序。一个系统可以被抽象成几个层次。例如,低级抽象层将显示硬件细节,而高级抽象层将只显示实体的业务逻辑。抽象这个词可以用来指实体和过程,这会导致一些混淆。作为一个过程,抽象意味着提取必要的细节,而忽略一个或一组项目的不重要的细节;而作为一个实体,抽象意味着一个只有基本细节的实体的模型或视图。在Java中,程序员可以使用关键字abstract将一个类声明为一个抽象实体,抽象实体表示真实世界实体的基本定义特征。

封装和抽象有什么区别?

  • 发表于 2020-10-23 12:49
  • 阅读 ( 151 )
  • 分类:IT

你可能感兴趣的文章

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

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

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

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

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

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

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

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

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

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

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

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

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

...要的事情,那就是修车,而不是关注细节。 什么是封装(encapsulation)? 封装是另一个OOP概念,它将数据和函数绑定到单个组件中,同时限制对某些组件的访问。它是OOP的主要基本概念之一,将数据和信息封装在一个单元下。从技...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 发布于 2021-07-01 13:14
  • 阅读 ( 328 )
n660538769690
n660538769690

0 篇文章

相关推荐