-
2019-06-10 11:51:42
抽象,是指从众多的事务中抽取出具有共同的、本质性的特征作为一个整体。是共同特质的集合形式。
封装,是将通过抽象所得到的数据信息和操作进行结合,使其形成一个有机的整体。对内执行操作,对外隐藏细节和数据信息。
两者的区别,在于抽象是一种思维方式,而封装则是一种基于抽象性的操作方法。我们通过抽象所得到数据信息及其功能,以封装的技术将其重新聚合,形成一个新的聚合体,也就是类。或者说,两者是合作者的关系,如果没有抽象,封装就无从谈起,如果没有封装,抽象也将没有意义。更多相关内容 -
java oop理论(抽象和封装)
2016-11-01 11:47:49主要讲述了java oop中关于抽象与封装的理论知识。 -
知识点3:谈谈封装和抽象的区别
2017-04-24 13:37:36封装,是将通过抽象所得到的数据信息和操作进行结合,使其形成一个有机的整体。对内执行操作,对外隐藏细节和数据信息。 两者的区别,在于抽象是一种思维方式,而封装则是一种基于抽象性的操作方法。我们通过抽象所...抽象,是指从众多的事务中抽取出具有共同的、本质性的特征作为一个整体。是共同特质的集合形式。
封装,是将通过抽象所得到的数据信息和操作进行结合,使其形成一个有机的整体。对内执行操作,对外隐藏细节和数据信息。
两者的区别,在于抽象是一种思维方式,而封装则是一种基于抽象性的操作方法。我们通过抽象所得到数据信息及其功能,以封装的技术将其重新聚合,形成一个新的聚合体,也就是类。或者说,两者是合作者的关系,如果没有抽象,封装就无从谈起,如果没有封装,抽象也将没有意义。下一篇:接口与抽象类有何区别?敬请期待
-
da06抽象继承封装多态接口.zip
2020-05-25 23:24:14Flutter抽象继承封装多态接口案例,基于vscode开发工具,通过运行Flutter中的Test文件,来测试flutter中的继承,抽象,多态,封装,接口的概念 -
数据抽象、封装、类
2018-09-20 09:33:44先来说说两个概念: 数据抽象 和 封装 第一个问题: 这两个概念从何而来? 答: 数据抽象和封装 是类的基本思想。 为什么这么说?以下用大白话来解释下 举个例子,一部手机,有 开关机按钮、音量键、显示屏,...先来说说两个概念: 数据抽象 和 封装
第一个问题: 这两个概念从何而来?
答: 数据抽象和封装 是类的基本思想。
为什么这么说?以下用大白话来解释下
举个例子,一部手机,有 开关机按钮、音量键、显示屏,我们可以通过他们来开关机、调节音量、查看手机信息等。但是手里里面是怎么实现这些功能的我们不知道(我们也不需要知道,这是手机开发者的事情),我们是手机的使用者,我们只关心这些键的用途,里面的构造我们不关心。
好了,接下来,我们把 类(class)看做是一个手机, 开关机按钮、音量键、显示屏等 相当于 类 的接口, 类的实现 指的是 手机实现这些功能的内部构造原理。
那么,什么是数据抽象? 它可以用来 找出共性, 比如,街上有 渣土车、公交车、小汽车,我们通过数据抽象,归纳出他们都是车的一种,共性:可以驾驶。驾驶就相当于一个接口。同时,数据抽象会 暴露接口,隐藏实现细节。这些车都可以载人,但是,内部构造,比如发动机如何带动车轮运作等这些细节隐藏了。
抽象一点说: 数据抽象 是一种依赖接口和实现分离得编程技术。(这个概念看看就行)
继续,什么是封装? 封装实现了接口和实现的分离。需要通过定义一个 抽象数据类型 来实现封装。那就是类。类的设计者需要考虑类内部是如何实现的。类的使用者只需考虑类的接口有什么用,如何使用等。
PS: 再来讲讲,接口 和 实现
什么是接口?
接口 就是 类对象所能执行的操作。
什么是实现?
实现包括 接口函数的定义、类的数据成员、以及实现类需要的其他私有函数。
最后, 封装 有什么好处?
1. 它隐藏了细节,防止用户错误更改对象的状态,导致用户级错误;
2. 当有新需求的时候,若只需要修改类内部,无需更改接口,那么用户级代码可以保持不变,只需修改类内部及实现后重新编译即可。
-
封装与抽象
2018-08-17 00:00:19封装是OO的重要特征,这一点是毫无疑问的,至于算不算的上是OO的三大特征之一(另外两个是继承、多态),目前仍有争论,我也不想在这个问题上作过多的纠缠。 什么是封装呢?封装是一项将低层次的元素组合起来形成...封装是OO的重要特征,这一点是毫无疑问的,至于算不算的上是OO的三大特征之一(另外两个是继承、多态),目前仍有争论,我也不想在这个问题上作过多的纠缠。
什么是封装呢?封装是一项将低层次的元素组合起来形成新的,高层次实体的技术。被封装的元素隐藏了它们的实现细节。封装是人们对现实世界中解决问题时,为了进行简化问题,对研究的对象所采用的一种方法,一种信息屏蔽技术。例如:打电话的时候,我们只需简单的按几个按钮就可以了,我们没有必要去了解电话内部的线路、网络的连接,这样一来通过对实现细节的封装,就使得本身很复杂的问题变得非常简单,容易操作,并且出错的几率大大减小。
封装的主要目的就是达到接口和实现的分离。通过封装,对内我们将实现细节隐藏起来,对外我们则通过接口向客户提供相应的服务。将接口和实现分离是避免所谓的“涟漪现象”的关键(涟漪现象,即“一石激起千层浪”。在软件开发过程中,经常会出现为了某个目的,修改一个文件A,结果必须修改与之相关的其他文件B、C,修改文件B、C就要修改相关的文件D、E、F、G,如此循环往复,就会造成大规模的修改,最终会以瀑布式扩散到系统的各个地方。就象在湖中央投下了一颗石子,造成整个湖面的波动,“涟漪现象”由此而得名)。
将接口和实现分离是软件重复使用的一个手段,其作用主要体现在以下4个方面:
1、降低了系统内部各个模块之间的耦合,使系统更有弹性。
2、将软件中的BUG精确定位到较小的模块,有助于软件的调试工作。
3、降低系统的复杂性,使客户更易理解和使用。
4、分离造成的简单性,更有助于软件的重复使用。抽象是对象的最简化的接口,他向客户提供了所期望的服务。理解抽象的关键,在于接口,抽象是对象接口的抽象,对于特定的对象,抽象就是一个明确的接口,对于电话,按钮就是他的接口(抽象)。 用好抽象的关键在于对所研究问题的深刻理解。设计的比较好的抽象可以把说明从实现中分离出来,通过提供必备的信息,隐藏起实现的细节,让客户以较为安全和客预测的方式使用对象,同时通过降低复杂性,以简单接口的方式降低学习难度,提高学习效率。 好的抽象,应该使客户打消“偷窥”的念头(不过总是有些人想方设法去窥视具体的实现),按照抽象编程,使得最终的客户代码更加的简单、安全和稳定,在这方面,标准程序库和各种准标准程序库做得最为出色。 一个好的抽象必须提供明确的、完整的、易于理解的说明,依赖抽象编程,实际上就是依赖这些说明进行编程,他比依赖实现编程有很大的优势: 1、阅读说明比阅读源代码容易得多,时间节省了很多,也更容易理解。 2、通过说明的完整性(例如先置条件、后置条件、适用范围等),我们可以很清楚的了解一个类的完整性。 3、通过说明,我们的接口具有更大的弹性和可扩展性(例如我们可以采用更加有效的方法实现sort接口)。 4、规定接口必须有说明,把那些没有相应说明的接口定义为错误,使得类的维护更加容易。 一个好的说明应该是规定接口必须提供的服务,必须完成的任务,而不是已经做过的事情。 封装与抽象是密不可分的。 封装通过提供抽象,隐藏了实现的细节,通知客户那些是可以随便使用的稳定的服务,那些是随着版本的更新有可能发生变动的细节,例如有一个接口:void sort();通过接口的说明,客户可以知道这个接口用来进行排序,具体的排序方法是什么,客户无需关心,可能在版本1中,采用的是冒泡排序,在升级的版本2中,采用的则是快速排序。客户既然不用关心细节,那么使用什么方法对客户的代码不会带来任何影响。对于一个已经公布的接口/抽象,我们不能够随意更改,例如在版本1中提供了sort接口,那么在升级的版本2中必然也要有这个接口,因为版本公布之后,我们就无法知道,这个接口是不是有人在使用,如果我们在版本2中禁止了sort接口,那么所以使用版本1的客户代码无法升级,若强行升级,势必带来客户代码的中断,这个特点在COM中尤为明显。
-
封装、继承、多态、抽象
2021-07-03 19:27:26封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。(信息隐藏或数据访问保护) 属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同类事务的共性(属性和... -
整体理解抽象、封装、继承、多态
2020-11-21 16:51:43背景: 上一次我们比较形象化地介绍了...这一次简单介绍一下抽象封装和继承多态。这也是面向对象程序设计的重要特点,下面我们就一起来看看吧! 一、抽象 抽象是分析和设计中经常使用的一种重要的方法,也就是分析 ... -
【JAVA】抽象和封装
2016-08-26 16:29:26Java:抽象与封装…… -
面向对象编程之继承、多态、封装、抽象类、接口、包-上
2021-04-20 17:02:16面向对象编程之继承、多态、封装、抽象类、接口、包继承类的继承格式为什么要继承继承的特点继承的种类及关键字访问权限多态向上转型动态绑定方法重写重写和重载的区别比较多态的优点封装实现Java的封装封装的优点... -
数据抽象与封装的好处--【primer第四版】
2015-11-23 21:16:11数据抽象和封装提供了两个重要优点 -
C++的特性(封装、继承、多态、抽象)的详解
2022-03-21 19:03:10封装 封装目的:模块化+信息隐藏 封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。 是通过特性和行为的组合来创建新数据类型让接口与具体实现相隔离。 C++中... -
清华大学JAVA教程--类、抽象和封装(教师课件)
2010-11-11 21:45:01清华大学的课件。主要是抽象和封装,有兴趣的可以看看。 -
c++中数据抽象与数据封装的区别
2018-10-13 09:58:44数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。 封装是:函数与数据在一起进行封装。 抽象是:仅仅将接口暴露,细节隐藏; 根据我... -
抽象 与 封装 区别
2017-03-31 13:54:26抽象包括过程抽象和数据抽象。 封装 封装是把一个语言结构的具体实现细节作为一个黑匣子对该结构的使用者隐藏起来的一种机制,从而符合信息隐藏原则。封装包括过程封装和数据封装。 区别 封装考虑内部实现... -
java面向对象概念:抽象、封装、继承和多态
2018-04-18 14:51:58面向对象的范例支持四个主要原则:抽象,封装,继承和多态。它们也被称为面向对象范式的四大支柱。 抽象是暴露实体的基本细节的过程,同时忽略不相关的细节,以减少用户的复杂性。封装是将数据和数据操作绑定在一起... -
抽象、封装、继承、多态--基本理解
2018-11-04 17:25:52封装就是把抽象的数据和对数据进行的操作封装在一起,数据被保存在内部,程序的其他部分只有通过被授权的操作(成员方法)才能对数据进行操作。 电视机的开关,对音量,颜色,频道的控制是公开的,谁都可以操作,... -
类的抽象和封装
2016-03-24 20:06:35在程序面向对象设计时,常常要用到类抽象与类的封装; 类的抽象是指将类分为两部分,一部分是类的实现,一部分是类的使用;用户只用知道如何使用这个类,而不需要知道这个类是如何实现的,程序把实现的过程封闭起来... -
java面向对象编程(OOP):封装、抽象、多态和继承
2017-10-06 18:46:43java面向对象四大特性:继承,封装,多态,抽象 -
java面向对象的四大特性,抽象、封装、继承、多态
2020-09-22 10:35:42java是面向对象的语言,面向对象有四大特性:抽象、封装、继承、多态。 一、抽象 1、抽象就是将一个事务共有的属性和方法进行抽取。把多个类中相同的方法声明进行抽取,定义到一个类中。如果这个类中的方法只有方法... -
面向对象编程的四个基本特性(抽象、封装、继承及多态)以及示例
2020-07-04 23:56:45面向对象的四个基本特性是,抽象、封装、继承以及多态。 1. 抽象 抽象就是忽略关注主题与当前目标无关的信息,以便更关注于与当前目标有关的信息。抽象并不打算了解全部问题,而只关注于主题相关性较大的部分,且... -
java之封装和抽象
2016-07-18 19:47:43封装和抽象的异同 -
C++面向对象程序设计——概述(对象、类、抽象、封装、继承、多态)
2018-09-05 09:19:22前言:今天第一次上C++课程。根据老师的所讲内容进度,记录C++知识!!! 第一章 问题一:什么是面向对象程序设计?... 面向对象程序设计是一种新的程序设计范型。... 程序一般由类的定义和类的使用两部分组成; ... -
对封装、继承、多态、抽象的理解
2018-09-21 15:48:39对封装、继承、多态、抽象的理解 封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把... -
封装和抽象
2016-05-18 14:32:17关注侧重点不同 ...虽然还是没有直接给出抽象与封装的直接定义。但是给出了它们关注的侧重点不同。 6.1节---抽象数据类型(ADT) ADT是指一些数据以及对这些数据所进行的操作的集合。 一个准则是,当 -
Java的四个基本特征(抽象,封装,继承,多态)
2018-06-17 12:51:19java的四个基本特征是很容易开始面试的点,如果问的是三大属性,那么是封装,多态,继承,如果问的是四大特征,那么分别是抽象,封装,多态,继承。 1.抽象 抽象:将相同的类的共同特征总结出来,构造成类的... -
Java中封装与抽象类的理解
2020-06-11 10:36:02封装,提供的对象隐藏内部特性和行为的一种能力,每个对象提供了一些方法,其他的对象可以访问并改变其内部数据。在Java中,提供了三种访问修饰符:公有的,私有的以及保护的。每个修饰符都设定了不同的访问权限,这... -
类的抽象、封装、数据隐藏
2019-06-17 09:48:00抽象 通过类方法的共有接口对类对象执行操作。 封装 实现的具体细节(如数据表示和方法的代码)都是隐藏的。 数据隐藏 类的数据成员可以使私有的(默认),这意味着只能通过成员函数来访问这些数据。 ... -
Java中的封装,继承和多态(详解)
2021-05-21 22:07:08所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,我们定义如下一个类,可以看到所有的成员变量和成员方法都使用private修饰了,我们现在来使用一下这个类。 当我们使用的时候编译器给出... -