C课件第七章面向对象程序设计概述.ppt
《C课件第七章面向对象程序设计概述.ppt》由会员分享,可在线阅读,更多相关《C课件第七章面向对象程序设计概述.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章 面向对象程序设计概述 要点:n面向对象程序设计的基本思想;n对象、类、消息、抽象性、封装性、继承性、多态性的基本概念。本章内容7.1 面向对象的思想7.2 面向对象程序设计的基本概念7.3 面向对象程序设计的语言7.1 面向对象的思想7.1.1 结构化程序设计回顾7.1.2 面向对象的思想7.1.3 结构化和面向对象的比较结构化程序设计回顾(1)结构化程序设计是为了解决早期计算机程序的难于阅读、理解、调试、维护和扩充,以及开发周期长、不易控制程序的质量等问题而提出来的,它的产生和发展奠定了软件工程的基础。结构化程序设计的基本思想是:自顶向下,逐步求精。将整个程序结构划分成若干个功能相对
2、独立的模块,模块之间的联系尽可能简单;每个模块用顺序、选择、循环三种基本结构来实现;每个模块只有一个入口和一个出口。结构化程序设计有很多优点:各模块可以分别编程,使程序易于阅读、理解、调试和修改;方便新功能模块的扩充;功能独立的模块可以组成子程序库,有利于实现软件复用等。结构化程序设计回顾(2)结构化程序设计方法以解决问题的过程作为出发点,其方法是面向过程的。它把程序定义为“数据结构+算法”,程序中数据与处理这些数据的算法(过程)是分离的。这样,对不同的数据结构作相同的处理,或对相同的数据结构作不同的处理,都要使用不同的模块,从而降低了程序的可维护性和可复用性。同时,由于这种分离,导致了数据可
3、能被多个模块使用和修改,难于保证数据的安全性和一致性。因此,对于小型程序和中等复杂程度的程序来说,它是一种较为有效的技术,但对于复杂的、大规模的软件的开发来说,它就不尽如人意了。通过上面的分析可以看出:结构化程序设计的核心思想是功能的分解,思想的特点是将数据结构与过程分离,着重点在过程。用这种方法开发的软件可维护性和可复用性差。面向对象的思想(1)面向对象程序设计是在结构化程序设计的基础上发展起来的,它吸取了结构化程序设计中最为精华的部分,有人称它是“被结构化了的结构化程序设计”。在面向对象程序设计中,对象是构成软件系统的基本单元,并从相同类型的对象中抽象出一种新型的数据类型类,对象只是类的实
4、例。类的成员中不仅包含有描述类对象属性的数据,还包含对这些数据进行处理的程序代码(这些程序代码被称为对象的行为或操作)。将对象的属性和行为放在一起作为一个整体的方法称为封装,它将对象的大部分行为的实现隐蔽起来,仅通过一个可控的接口与外界交互。面向对象程序设计提供了类的继承性,可通过对一个被称为基类的类增添不同的特性来派生出多种被称为派生类的特殊类,从而使得类与类之间建立了层次结构关系,为软件复用提供了有效的途径。面向对象的思想(2)面向对象程序设计支持多态性。多态性与继承性相结合,使不同结构的对象以各自不同的方式响应同一个消息。软件系统中,对象与对象之间存在着一定的联系,这种联系通过消息的传递
5、来实现。在面向对象程序设计中,消息表现为一个对象对另一个对象的行为的调用。通过上面的分析可以看出:面向对象程序设计的核心思想是数据的分解,着重点放在被操作的数据上而不是实现操作的过程上。它把数据及其操作作为一个整体对待,数据本身不能被外部过程直接存取。思想的特点是程序一般由类的定义和类的使用两部分组成,主程序中定义各个对象并规定它们之间传递消息的规律,程序中的一切操作都通过向对象发送消息来实现,对象接收到消息后,调用有关对象的行为来完成相应的操作。用这种方法开发的软件可维护性和可复用性高。结构化 面向对象结构化和面向对象的比较(1)1、解决了早期计算机程序难于阅读、理解、调试、维护和扩充、开发
6、周期长、不易控制程序的质量等问题。1、解决了结构化方法中数据与算法分离带来的可维护性、可复用性、数据的安全性和一致性差等问题。2、结构化的核心思想是功能的分解,将数据结构与过程分离,设计重点放在过程2、面向对象的核心思想是数据的分解,设计重点是数据而不是过程。数据及其操作作为一个整体,数据不能被外部过程直接存取3、程序由模块构成,每个模块用顺序、选择、循环三种基本结构来实现;模块单入口单出口,程序的功能是通过过程对数据的直接操作而实现的3、程序由类的定义和类的使用两部分组成,主程序中定义各个对象并规定它们之间传递消息的规律,程序中的一切操作都通过向对象发送消息来实现,结构化和面向对象的比较(2
7、)n面向过程的方法 即程序=数据+操作(对数据和操作不进行分类)n面向对象的方法 即程序=对象+对象而对象=数据+操作(对数据和操作进行分类)程序可以看成是一系列对数据进行操作的过程。目前有两种组织数据和操作的方法:木材钢材水泥木工机械金属加工机床搅拌机械分类后的建筑工地分类前的建筑工地木材钢材水泥木工机械金属加工机床搅拌机械木工车间金工车间瓦工车间7.2 面向对象的基本概念 7.2.1 对象和类 7.2.2 消息 7.2.3 抽象性 7.2.4 封装性 7.2.5 继承性7.2.6 多态性对象和类现实世界中(1)n现实世界中的对象是现实世界中的实体 1.每个对象都有一个用于与其他对象相区别的
8、名字。2.具有某些特征,称它为属性或状态。3.有一组操作,每一个操作决定对象的一种行为即对象能干什么。4.对象的状态只能被自身的行为所改变。5.对象之间以消息传递的方式相互通信。座位数刹车车轮数颜色发动机缸数加速n类和对象是抽象和具体的关系。n具有共同属性和行为的事物的抽象叫做类,同类中的事物可以具有不同的属性值。例如,右图中的车具有共同的属性,因此同属轿车类。n同类的具有不同属性值的事物叫做该类的一个对象。例如,右图中每一部轿车,由于其属性值各不相同,故是轿车类的对象。对象和类现实世界中(2)n现实世界中的类是对一组具有共同属性和行为的对象的抽象。对象和类面向对象设计中(1)n面向对象程序设
9、计中的对象是由描述其属性的数据和定义在数据上的一组操作组成的实体,是数据单元和过程单元的集合体。n如学生李东是一个对象,他由描述他的特征的数据和他能提供的一组操作来表征:对象名:李东 属性:年龄:20,性别:男,身高:173厘米,体重:71公斤,特长:篮球运动,专业:计算机科学和技术 操作:回答有关自己的提问,计算机软件开发、维护、组网n 这里的属性说明了李东这个对象的特征,操作说明了李东能做什么。李东对象和类面向对象设计中(2)n面向对象程序设计中的类是一组有相同属性结构和操作行为对象的抽象。类由类名区分,如人、树等。n如学生是对学生对象抽象所形成的类,它由学生共同的属性和操作来表征:类名:
10、学生 属性:年龄,性别,身高,体重,特长,专业等.操作:回答有关针对个人的提问,从事本专业的简单工作n 这里的属性说明了学生共有的特征,但没有具体的属性值,操作说明了学生能做什么。他们都是学生,李东是其中之一对象和类面向对象设计中(3)n类是创建对象的样板,它没有具体的属性值和具体的操作,以它为样板创建的对象才有具体的值和操作。一个对象是类的实例,有了类才能创建对象。n类名:学生n属性:年龄,性别,身高,体重,特长,专业n操作:回答提问,从事本专业的简单工作n当把类的各属性赋予实际李东相关的值,同时给这个具体化了的类命名李东后,就用学生这个类创建了一个对象李东。年龄20,性别 男,身高173厘
11、米,体重71公斤,特长篮球运动,专业计算机科学和技术,现在就不能代表在座的所有学生了,故取名李东对象和类面向对象设计中(4)n特别要指出的是,在面向对象程序设计中,类只出现在源程序代码中,不会出现在正在内存运行的程序中,换句话说,类只是在编译时存在,为对象的创建提供样板。对象作为类的实例出现在内存运行的程序中,占有内存空间,对象是运行时存在的实体。所以类实际上是一个新的数据类型,要使用它时,要在源程序中说明,而说明部分的代码是不在内存中运行的。在内存中运行的是类的对象,对象在内存中分配空间并完成计算任务,对象通过类来定义。所以,必须严格区分说明和定义两个概念。在C+中,把描述类的属性的数据称为
12、数据成员,把描述行为的操作称为成员函数。对象和类对象的状态1.对象能够独立存在于现实世界中的原因,是每个对象都有各自的特征,这些特征就是对象的状态。对象的状态用属性的值来表征,是所有静态属性和这些属性的动态值的总和。2.面向对象程序设计中对象的状态可以是初等的数据类型,如整型、实型、字符型等,也可以是用户自定义的数据类型,如结构性、枚举型等,还可以是对象,如人的状态除姓名等外,可能有家庭成员,而家庭成员是一个对象。对象和类类的确定和划分1.确定和划分类的重要性:面向对象技术是将系统分解成若干对象,对象之间的相互作用构成了整个系统。设计类而不是对象可以避免重复编码,类只需编码一次,就可以创建所有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课件 第七 面向 对象 程序设计 概述
限制150内