ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:33.13KB ,
资源ID:10762879      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10762879.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机等级考试公共基础.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机等级考试公共基础.docx

1、全国计算机等级考试公共基础2011年全国计算机等级考试第一章 数据结构与算法考点1:算法1 算法的时间复杂度是指算法执行过程中所需要的基本运算次数。2 算法的空间复杂度是指算法执行过程中所需要的存储空间。3 算法通常由两种基本要素组成,一是对数据对象的运算和操作,二是算法的控制结构。4 在同一个问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用平均性态和最坏情况复杂性两种方法来分析算法的工作量。5 算法设计基本方法主要有列举法、归纳法、递推、递归和减半递推技术。考点2:数据结构的基本概念1. 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)

2、。一般说来,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。而采用不同的存储结构,其数据处理的效率是不同的。2. 所谓数据处理,是指对数据集合中的各元素以各种方式进行运算,包括插入、删除、查找、更改等运算,也包括对数据元素进行分析。3. 数据结构是指相互有关联的数据元素的集合。4. 数据元素之间的任何关系都可以用前驱和后继关系来描述。5. 在数据结构中,没有前驱的结点称为根结点,没有后继的结点称为终端结点(也称为叶子结点)。数据结构中除了根结点与终端结点外的其他结点一般称为内部结点。6. 在数据结构中,结点及结点间的相互关系是数据的逻辑结构。数据结

3、构按逻辑关系的不同,通常可分为线性结构和非线性结构两类。7. 一个非空的数据结构满足以下两点:有且只有一个根结点;每一个结点最多有一个前驱,也最多有一个后继,则称该数据结构为线性结构,线性结构又称线性表。线性结构与非线性结构都可以是空的数据结构,一个空的数据结构究竟属于线性结构还是非线性结构,根据具体情况来确定。考点3:线性表及其顺序存储结构1. 给定一个有n个元素的线性表,若采用顺序存储结构,则在等概率前提下,向其插入一个元素需要移动的元素个数平均为n/2。2. 在稍微复杂的线性表中,一个数据元素可以由若干个数据项组成,在这种情况下,常把数据元素称为记录。3. 在计算机中存放线性表,一种最简

4、单的方法是顺序存储。即在顺序存储结构中,线性表中的每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定的。4. 在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间。考点4:栈和队列1. 栈是一种特殊的线性表,其插入与删除运算都只能在线性表的一段进行。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈是按照“先进后出”或“后进先出”的原则组织数据的,由此可知,栈具有记忆功能。2. 栈的基本运算有三种:入栈、退栈与读栈顶元素。入栈运算是指在栈顶位置插入一个新元素,栈顶指针进一。退栈元素是指取出栈顶元素并将该元素赋给一个指定的变量,栈

5、顶指针退一。读栈顶元素是指将栈顶元素赋给一个指定的变量,这个运算不删除栈顶元素,所以栈顶指针不会改变。3. 队列是指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素。允许删除的一端称为队头,通常也用一个排头指针(front)指向队头元素的前一个位置。队列又称为“先进先出”或“后进后出”的线性表。4. 往队列的队尾插入一个元素称为入队运算,队尾指针就进一。从队列的排头删除一个元素称为退队元素,排头指针就进一。与栈类似,在程序设计语言中,用一维数组作为队列的顺序存储空间。5. 根据数据结构对

6、队列先进先出的定义,打印作业应该存放在队列中。6. 递归算法一般需要利用栈实现。7. 对长度为n的线性表进行插入一个新元素或删除一个已有的元素时,在最坏情况下所需要的比较次数为n。8. 在一个容量为25的循环队列中,若头指针front=16,尾指针rear=9,则该循环队列中共有18个元素。因为,从队头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。考点5:线性链表1. 线性链表是链式存储结构,在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定。2. 链

7、式存储方式既可用于表示线性结构,也可用于表示非线性结构。在用链式结构表示较复杂的非线性结构时,其指针域的个数要多一些。3. 在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放数据元素的指针,称为指针域。其中指针用于指向该结点的后一个结点(即前驱或后继)。4. 数据结构分为逻辑结构与物理结构(存储结构),线性链表属于物理结构(存储结构)。5. 在线性单链表中,每一个结点只有一个指针域,由这个指针只能找到后继结点,但不能找到前驱结点。线性双向链表每个结点设置两个指针,一个称为左指针,用以指向其前驱结点,另一个称为右指针,用以指向其后继结点。与单向链表

8、相比,双向链表的优点之一是更容易访问相邻结点。6. 在实际应用中,带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,这种带链的栈称为可利用栈。7. 为了要在线性链表中插入一个新元素,首先要给该元素分配一个新结点用于存储该元素的值。新结点可以从可利用栈中取得。8. 在线性链表中删除一个元素后,只需改变被删除元素所在结点的前一个结点的指针域即可。由于可用栈是用于收集计算机中所有的空闲结点,因此,当从线性链表中删除一个元素后,该元素的存储结点就变为空闲,应将该空闲结点送回到可用栈。9. 在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点,而线性单链表做不到这一

9、点。另外,由于在循环链表中设置了一个表头结点,因此任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。考点6:树与二叉树1. 二叉树的遍历是指不重复地访问二叉树中所有结点,二叉树是一种非线性结构。在先左后右的原则下,根据访问根结点的次序,可将二叉树的遍历分为三种:前序遍历、中序遍历、后续遍历,是一个递归的过程。2. 前序遍历首先访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,仍然采用前序遍历的方法。中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树,在遍历左、右子树时,仍然采用中序遍历的方法。后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点,在遍历

10、左、右子树时,仍然采用后序遍历的方法。3. 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。4. 在树结构中,一个结点所拥有的后继个数称为该结点的度。在树中,所有结点中的最大的度称为树的度。(设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为8。设一个二叉树中有3个叶子节点,有8个度为1的结点,则该二叉树中的结点数为13。)5. 所谓完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大

11、值;在最后一层上只缺少右边的若干结点。更确切地说,如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行连续编码,则深度为m、且有n个结点的二叉树,当且仅当其每一个结点都与深度为m的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。(设一棵完全二叉树共有739个结点,则在该二叉树中有370(739+1后除2)个叶子结点)。对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1。由满二叉树与完全二叉树的特点可以看出,满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。完全

12、二叉树具有以下两个性质:(1)具有n个结点的完全二叉树的深度为【log2n】+1。(2)设完全二叉树共有n个结点。如果从根结点开始,按层序(每一层从左到右)用自然数1,2,n给结点进行编号,则对于编号为k(k=1,2,n)的结点有以下结论:若k=1,则该结点为根结点,它没有父节点;若k1,则该结点的父结点编号为INT(k/2)。若2kn,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。若2k+1n,则编号为k结点的右子结点编号为2k+1;否则该结点无右子结点。6. 设一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后续遍历结果为DEBFC

13、A。考点7:查找技术1 二分法查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。设有序线性表的长度为n,设待查元素为x,则二分法查找(也称对分查找)的方法如下: 将x与线性表的中间项进行比较; 若中间项的值等于x,则说明查到,查找结束; 若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找; 若x大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找。反复进行这个过程一直进行到查找成功或子表长度为0(说明线性表中没有这个元素)为止。显然,当有序线性表为顺序存储时才能采用二分查

14、找,并且,二分查找的效率要比顺序查找高得多。对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。2 顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法如下:从线性表中的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示找到(即查找成功);若线性表中所有的元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。在长度为n的线性表中查找一个表中不存在的元素,需要的比较次数为n。对于大的线性表来说,顺序查找的效率是很低的。虽然顺序查找的效率不高,但在下列两种情况下也只能采用顺序查找: 如果

15、线性表为无序表(即表中元素的排列是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找。 即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。考点8:排序技术1 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。一般要小于此复杂度。冒泡排序法的基本过程如下:首先,从表头开始往后扫描线性表,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,前面的元素大于后面的元素,则将它们互换,称之为消去了一个

16、逆序。显然,在扫面过程中,不读地将两相邻元素中的大者往后移动,最后就将线性表中的最大者换到表的最后,这也是线性表中最大元素应有的位置。然后,从后到前扫描剩下的线性表,同样,在扫描过程中逐次比较相邻两个元素的大小。若相邻两个元素中,后面的元素小于前面的元素,则将它们互换,这样就又消去了一个逆序。显然,在扫描过程中,不断地将两相邻元素中的小者往前移动,最后就将剩下线性表中的最小者换到了表的最前面,这也是线性表中最小元素应有的位置。对剩下的线性表重复上述过程,直到剩下的线性表变空为止,此时的线性表已经变为有序。在上述排序过程中,对线性表的每一次来回扫描后,都将其中的最大者沉到了表的底部,最小者像气泡

17、一样冒到表的前头。且冒泡排序又称下沉排序。2 堆排序的方法对于规模较小的线性表并不合适,但对于较大规模的线性表来说是很有效的。在最坏情况下,堆排序需要比较的次数为O(nlog2n),堆排序的时间复杂度最小。在堆排序的过程中,调整建堆时,总是将根结点值与左、右子树的根结点值进行比较,若不满足堆的条件,则将左、右子树根结点值中的大者与根结点值进行交换。这个调整过程一直做到所有子树均为堆为止。有了调整建堆的算法后,就可以将一个无序序列建成为堆。假设无序序列H(1:n)以完全二叉树表示。从完全二叉树的最后一个非叶子结点(即第n/2个元素)开始,直到根结点(即第一个元素)为止,对每一个结点进行调整建堆,

18、最后就可以得到与该序列对应的堆。堆排序的方法如下: 首先将一个无序序列建成堆。 然后将堆顶元素(序列中的最大项)与堆中最后一个元素交换(最大项应该在序列的最后)。不考虑已经换到最后的那个元素,只考虑前n-1个元素构成的子序列,显然,该子序列已不是堆,但左、右子树仍为堆,可以将该子序列调整为堆。反复执行此步骤,直到剩下的子序列为空为止。3 快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法。快速排序法可以实现通过一次交换而消除多个逆序。快速排序法的基本思想如下:从线性表中选取一个元素,设为T,将线性表后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就

19、将线性表分成了两部分(称为两个子表),T插入到其分界线的位置处,这个过程称为线性表的分割。通过对线性表的一次分割,就以T为分界线,将线性表分成了前后两个子表,且前面子表中的所有元素均不大于T,而后面子表中的所有元素均不小于T。 如果对于分割后各子表再按上述原则进行分割,且这种分割过程可一直做下去,直到所有子表为空,则此时线性表就变成有序表。可知,快速排序法的关键是对线性表进行分割,以及对各分割出的子表再进行分割,在对线性表或子表进行实际分割时,可按如下步骤进行:首先,在表的第一个、中间一个与最后一个元素中选取中项,设为P(k),并将P(k)赋给T,再将表中的第一个元素移到P(k)的位置上。然后

20、设置两个指针i和j分别指向表的起始与最后的位置。4 在简单插入排序法中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。5 选择类排序法主要有简单选择排序法和堆排序法;6 交换类排序法主要有冒泡排序法和快速排序法;7 插入类排序法主要有简单插入排序法和希尔排序法。第二章 程序设计基础考点1:程序设计方法与风格1程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思维。程序是由人编写的,为了测试与维护程序,往往还要阅读和跟踪程序,因此程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的,可读性要好。著名的“清晰

21、第一,效率第二”这一论点已成为当今主导的程序设计风格。2源程序文档化时应考虑:符号名的命名、程序注释和视觉组织。(1)注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述内容可以包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。(2)符号名的命名:符号名的命名应具有一定的实际含义,以便于理解程序功能。(3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。3在编写程序时,开发

22、者需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。应注意和把握以下三点:数据说明的次序规范化、说明语句中变量安排有序化、使用注释来说明复杂数据的结构。4编写的程序应该简单易懂,语句构造应该简单直接,不能为了提高效率而把语句复杂化。应注意以下内容: 在一行内只写一条语句; 程序编写应优先考虑清晰性; 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二; 首先要保证程序正确,然后才要求提高速度; 避免使用临时变量而使程序的可读性下降; 避免不必要的转移;尽可能使用库函数; 避免采用复杂的条件语句; 尽量减少使用“否定”条件的条件语句; 数据结构要有利于程序的简化; 要模块化,使

23、模块功能尽可能单一化; 利用信息隐蔽,确保每一个模块的独立性; 从数据出发去构造程序;不好的程序不要修补,要重新编写。5无论是批处理的输入和输出方式,还是交互式的输入和输出方式,在设计和编程时都应该考虑以下原则: 对所有的输入数据都要检验数据的合法性; 检查输入项的各种重要组合的合理性; 输入格式要简单,以使得输入的步骤和操作尽可能的简单; 输入数据时,应允许使用自由格式; 应使用默认值; 输入一批数据时,最好使用输入结束标志; 在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息; 当程序设计语言对输入格式有严格

24、要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式。考点2:结构化程序设计1程序的易读性是结构化程序设计最重要的特点。2按照结构化设计方法设计的程序具有以下特点:(1)程序易于理解、使用和维护,程序员采用结构化编写方法,便于控制、降低程序的复杂性,因此容易编写程序。便于验证程序的正确性,结构化程序清晰易读,可理解性好,程序员能够进行逐步求精、程序证明和测试,以确保程序的正确性,程序容易阅读并被人理解,便于用户使用和维护。(2)提高编程工作的效率,降低了软件开发成本。由于结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错的时间。结构化是由一些为数不多的基

25、本结构模块组成,这些模块甚至可以由机器自动生成,从而极大地减轻了编程工作量。结构化程序设计选用的每个控制结构只允许有一个入口和一个出口。3 结构化程序设计的三种基本逻辑结构为顺序结构、选择结构和重复结构。(1)顺序结构是一种简单的程序设计,它是最基本最常用的结构。(2)选择结构又称为分支结构,包括简单分支和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句系列。(3)循环结构是根据给定的条件,判断是否需要重复执行某一相同的或类似的程序段,利用循环结构可节约大量的程序行。在程序设计语言中,循环结构包括当型循环结构和直到型循环结构。 当型循环结构:先判断条件后执行循

26、环体。 直到型循环结构:先执行循环体后判断条件。4 结构化程序设计方法的主要原则是自顶而下,逐步求精,模块化,限制使用GOTO语句。(1)自顶而下:程序设计时,应先考虑整体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层目标开始设计,逐步使问题具体化。(2)逐步求精:对于复杂问题,应考虑设计一些子目标作为过渡,逐步细化。(3)模块化:把一个复杂的问题分解成若干稍微简单的问题,把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,我们把每一个小目标称为一个模块。模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。(4)限制使用G

27、OTO语句:滥用GOTO语句确实有害,应尽量避免;并非完全避免使用GOTO语句,有些地方使用GOTO语句会使程序流程更清楚、效率更高。我们争论的焦点不应该放在是否取消用GOTO语句上,关键是是否能提高程序清晰性。5 结构化程序设计的一种基本方法是逐步求精法。对于复杂问题,应考虑设计一些子目标作为过渡,逐步细化,使复杂问题变得简单,从而有利于问题的解决。考点3:面向对象的程序设计1模块是指执行某一特定任务(也可以是实现某一特定的抽象数据类型)的数据结构和程序代码。一个模块有它的外部特征和内部特征。外部特征包括模块的接口(即它的输入/输出参数,引用的全局变量和它需调用的其他模块)和模块的功能;内部

28、特征包括模块的局部数据和实现该模块的程序代码。调用一个模块时只需知道它的外部特征即可,而不必了解其内部特征。模块化是指将一个待开发的软件分解成若干个小的简单的部分模块,每个模块可独立地开发、测试,最后组装成完整的程序。这是一种复杂问题的“分而治之”的原则,模块化的目的是使程序的结构清晰,模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。模块的功能尽量单一,且各模块之间的联系尽量少。在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则,以增加程序的可读性。2结构化设计方法是基于模块化、自顶而下细化、结构化程序设计等程序设计技术基础而发展而来的,是一种面向数据流的设计

29、方法。在结构化程序设计的具体实施中要注意把握以下要素:(1)使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑;(2)选用的控制结构只准许有一个入口和一个出口;(3)程序语句组成容易识别的块,每块只有一个入口和一个出口;(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现;(5)语言中没有的控制结构,应该采用前后一致的方法来模拟;(6)严格控制GOTO语句的使用。3模块化的目的是使程序的结构清晰,容易阅读,容易理解,容易测试,容易修改。模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块之间的联系简单。所以说,在面向对象的程序设计中,各个对象之间相对独立,相

30、互依赖性小。4信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽是通过对象的封装性来实现。封装是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装目的是使对象的使用者和生产者分离,使对象定义和实现分开。信息隐蔽的概念与模块独立性直接相关。耦合是指模块之间联系的紧密程度,耦合度越高则模块的独立性越差。5类是一组具有相同属性和相同操作的对象的集合。一个类的每个对象都是这个类的一个实例(instance)。在分析和设计时,我们通常把注意力集中在类上,而不是具体的对象。我们

31、也不必为每个对象逐个定义,只需对类做出定义,而对类的属性的不同赋值即可得到该类的对象实例。有些类之间存在一般和特殊的关系,即一些类是某个类的特殊情况,某个类是某些类的一般情况。即特殊类是一种一般类。特殊类是一般类的子类,一般类是特殊类的父类。通常把一个类和这个类的所有对象称为“类及对象”或对象类。6在面向对象方法中,继承是类间的一种基本关系,是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个子类只有唯一的一个父亲,这种继承称为单一继承。一个子类也可以有多个父类,它可以从多个父类中继承特性,这种继承称为多重继承。7在面向对象方法中,消息传递是对象间通信的手段,一个对象通过向另一个对象发

32、送消息来请求其服务,一个消息通常包括接受对象名,调用的操作名和适当的参数。消息只告诉接收对象需要完成什么操作,但并不指示接受者怎样完成操作。消息完全由接受者解释,接受者独立决定采用什么方法来完成所需的操作。8面向对象的程序设计方法中涉及到的对象是系统中用来描述客观事物的实体,是构成系统的一个基本单位,由一组表示其静态特征的属性及其可执行的一组操作(操作是对象的动态属性)组成,是属性与方法的封装体,对象间的通讯是靠消息来传递的。继承是面向对象的方法的主要特征。广义地说,继承是指能够直接获得已经具有的性质和特征,而不必重复定义它们。但并不是所有的对象都必须有继承性。9在面向对象方法学中,有对象模型、动态模型和功能模型。(1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1