面向对象的程序设计原理与技术.ppt
《面向对象的程序设计原理与技术.ppt》由会员分享,可在线阅读,更多相关《面向对象的程序设计原理与技术.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、首都师范大学教育技术系首都师范大学教育技术系方海光方海光2007年年9月月面向对象的程序设计原理与技术面向对象的程序设计原理与技术1http:/ 课件存放位置课件存放位置2第一章第一章 面向过程与面向对象的程序设计面向过程与面向对象的程序设计本章的主要目的是本章的主要目的是理解理解面向过程的程序设计面向过程的程序设计和面向对象的程序设计在本质上有什么和面向对象的程序设计在本质上有什么不同不同。主要从以下几个方面来讲解:主要从以下几个方面来讲解:计算机的工作过程计算机的工作过程面向过程的程序设计面向过程的程序设计面向对象的程序设计面向对象的程序设计3计算机的工作过程计算机的工作过程例:计算圆面积
2、。例:计算圆面积。s=3.14*r*r4输入设备输入设备程序程序原始数据原始数据内内存存储储器器原始数据原始数据运算器运算器结果结果结果结果输出设备输出设备外存储器外存储器控制器控制器计算机的工作过程计算机的工作过程基本结构图基本结构图程程序序5计算机的工作过程计算机的工作过程计算机在程序的控制下解题计算机在程序的控制下解题程序设计语言的发展经历了五代(前三代程序设计语言的发展经历了五代(前三代语言编写的程序本质上是相同的,都是按语言编写的程序本质上是相同的,都是按照机器的工作过程来编写,只不过程序的照机器的工作过程来编写,只不过程序的描述语句越来越接近人的思维,通用性越描述语句越来越接近人的
3、思维,通用性越来越强)来越强)第一代为机器语言第一代为机器语言第二代为汇编语言第二代为汇编语言第三代语言为高级语言第三代语言为高级语言第四代语言为面向对象的计算机语言第四代语言为面向对象的计算机语言第五代语言是按人工智能原理设计的语第五代语言是按人工智能原理设计的语言言6面向过程的程序设计面向过程的程序设计下面用面向过程的语言解题下面用面向过程的语言解题标准标准C语言源程序语言源程序#include void main()float r,s;printf(Input r:);scanf(%f,&r);s=3.14*r*r;printf(The area is:%fn,s);7例例11 Page
4、2例例12 Page38面向过程的程序设计面向过程的程序设计人模拟计算机思维来解题(输入人模拟计算机思维来解题(输入-运算运算-输出)输出)程序设计工作主要围绕解题过程的设计程序设计工作主要围绕解题过程的设计程序功能隐含在程序代码中程序功能隐含在程序代码中理解困难理解困难维护(修改)困难维护(修改)困难9面向过程的程序设计面向过程的程序设计在长期的软件开发实践中,人们总结出了在长期的软件开发实践中,人们总结出了一些设计原理和系统化的方法,包括:一些设计原理和系统化的方法,包括:模块化模块化:如函数:如函数抽象抽象 :忽略事物间的差异,集中和概括共性的方忽略事物间的差异,集中和概括共性的方面,例
5、如复杂问题抽象为用较自然的语面,例如复杂问题抽象为用较自然的语句来表示;句来表示;自顶向下的程序设计方法就是一个从抽象自顶向下的程序设计方法就是一个从抽象到具体的过程。到具体的过程。10面向过程的程序设计面向过程的程序设计信息隐藏信息隐藏:如局部变量:如局部变量模块独立模块独立:高内聚和松耦合高内聚和松耦合 内聚:内部元素间结合的紧密程度;内聚:内部元素间结合的紧密程度;耦合:模块间互相依赖的紧密程度。耦合:模块间互相依赖的紧密程度。结构程序设计结构程序设计:自顶向下逐步求精的设自顶向下逐步求精的设计方法、单入口单出口的控制结构计方法、单入口单出口的控制结构一句话:一句话:功能分解功能分解或算
6、法分解或算法分解11面向对象的程序设计面向对象的程序设计人类习惯的解决问题的方法:人类习惯的解决问题的方法:“顾客顾客-服服务员务员”的工作模式的工作模式。例:去理发馆理发例:去理发馆理发面向对象的方法模拟人类习惯的解题方法面向对象的方法模拟人类习惯的解题方法,用用对象分解对象分解取代功能分解,程序中的所有取代功能分解,程序中的所有对象对象分工协作分工协作,共同完成整个程序的功能,共同完成整个程序的功能。12面向对象的程序设计面向对象的程序设计面向对象方法的四个要点:面向对象方法的四个要点:(1)面向对象的软件系统由对象组成;)面向对象的软件系统由对象组成;(2)所有的对象划分为对象类,每个类
7、由数据)所有的对象划分为对象类,每个类由数据和方法组成;和方法组成;(3)若干个类按照子类(派生类)与父类(基)若干个类按照子类(派生类)与父类(基类)的关系组成了层次结构;类)的关系组成了层次结构;-继承,如汽车继承,如汽车与交通工具;与交通工具;(4)对象之间通过传递消息互相联系。)对象之间通过传递消息互相联系。OO=对象对象+类类+继承继承+消息消息 13面向对象的程序设计面向对象的程序设计面向对象方法的优点面向对象方法的优点 (1)与人的思维习惯一致)与人的思维习惯一致 (2)稳定性好)稳定性好 (3)可重用性好)可重用性好 (4)可维护性好)可维护性好 14例例13 Page6 15
8、1 1 对对 象象对象相当于现实世界中的实体对象相当于现实世界中的实体对象对象=属性属性 +方法方法数据数据操作操作内部操作内部操作1内部操作内部操作2数据数据公有公有操作操作1公有公有操作操作216对象的定义对象的定义 对象是一个封装体,封装了数据结构及可以施加在这对象是一个封装体,封装了数据结构及可以施加在这些数据结构上的操作。些数据结构上的操作。对象有对象名;对象有对象名;对象中的数据表示对象的状态,对象中的数据表示对象的状态,一个对象的状态只能一个对象的状态只能由该对象本身的操作来改变由该对象本身的操作来改变。对象向外界提供一组服务(即公有的操作),称为与对象向外界提供一组服务(即公有
9、的操作),称为与外界的接口。外界的接口。对对 象象17对象的特点:对象的特点:以数据为中心以数据为中心对象是主动的对象是主动的实现了数据封装实现了数据封装本质上具有并行性本质上具有并行性模块独立性好模块独立性好对对 象象182 2 其他面向对象的概念其他面向对象的概念类(类(Class)是对具有相同数据属性和相同操作的一个或一组是对具有相同数据属性和相同操作的一个或一组(集合)相似对象的描述,是一个(集合)相似对象的描述,是一个抽象的概念抽象的概念。类与函数的不同:类与函数的不同:类类 封装了函数与数据封装了函数与数据 是对问题的抽象描述是对问题的抽象描述 函数函数 封装了语句与数据封装了语句
10、与数据 完成特定的功能完成特定的功能例:大小不同、位置不一和颜色不同的圆,可以定义为例:大小不同、位置不一和颜色不同的圆,可以定义为一个一个Circle类。类。例:中国人例:中国人19实例(实例(Instance)是由某个特定的类所描述的是由某个特定的类所描述的一个具体的对一个具体的对象象。“对象对象”这个术语,既可以指一个具体的这个术语,既可以指一个具体的对象,也可以泛指一般的对象,对象,也可以泛指一般的对象,“实例实例”这个术语,必然是指一个具体的对象。这个术语,必然是指一个具体的对象。C+中,要定义一个对象或实例,必须中,要定义一个对象或实例,必须先建立一个这类对象的类。先建立一个这类对
11、象的类。基本概念基本概念20属性(属性(Attribute)类中所定义的数据,它是对客观世界实体所类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特具有的性质的抽象。类的每个实例都有自己特有的属性值。有的属性值。例:圆类(半径、位置、颜色)例:圆类(半径、位置、颜色)在在C+C+语言中把属性称为数据成员。语言中把属性称为数据成员。基本概念基本概念21方法(方法(MethodMethod)对象所能执行的操作,它应用于类或被类中对象使用。对象所能执行的操作,它应用于类或被类中对象使用。在在C+中称为成员函数。中称为成员函数。通常,一个函数对应一个通常,一个函数对应一个操
12、作,实现一个功能。操作,实现一个功能。例:圆对象响应显示圆的消息例:圆对象响应显示圆的消息 在在CircleCircle类中必须定义能够显示这个圆的方法,类中必须定义能够显示这个圆的方法,即编写成员函数即编写成员函数Show(int color)Show(int color)。基本概念基本概念22消息(消息(MessageMessage)对象之间相互请求相互协作的途径对象之间相互请求相互协作的途径 一个消息由下述三部分组成:一个消息由下述三部分组成:(1 1)接收消息的对象;)接收消息的对象;(2 2)消息选择符(也称为消息名);)消息选择符(也称为消息名);(3 3)零个或多个变元。)零个或
13、多个变元。例如例如 :MyCircle.Show(GREEN)MyCircle.Show(GREEN);其中:其中:MyCircle MyCircle是接收消息的对象的名字是接收消息的对象的名字 Show Show是消息选择符(即消息名)是消息选择符(即消息名)GREEN GREEN是消息的变元。是消息的变元。基本概念基本概念23封装性(封装性(Encapsulation)封装即把数据和实现操作的代码集中起来放封装即把数据和实现操作的代码集中起来放在对象内部,外界通过对象提供的接口来使用在对象内部,外界通过对象提供的接口来使用它,不需知道内部数据结构细节和实现操作的它,不需知道内部数据结构细节
14、和实现操作的算法算法。实现封装的条件实现封装的条件:(1)有一个清楚的边界)有一个清楚的边界(2)有确定的接口(用于接受用户发送的消息)有确定的接口(用于接受用户发送的消息)(3)受保护的内部实现)受保护的内部实现 封装的好处就是实现了信息隐藏,把对象的封装的好处就是实现了信息隐藏,把对象的实现细节对外界隐藏起来了,提高安全性。实现细节对外界隐藏起来了,提高安全性。在在C+中,通过定义类来实现封装。中,通过定义类来实现封装。基本概念基本概念24继承(继承(Inheritance)指能够直接获得已有的性质和特征,而不必重指能够直接获得已有的性质和特征,而不必重复定义它们。是复定义它们。是子类子类
15、自动地共享自动地共享基类基类中定义的中定义的数据和方法数据和方法的机制。的机制。例:家族关系例:家族关系 继承具有传递性,如果类继承具有传递性,如果类C C继承类继承类B B,类,类B B继继承类承类A A,则类,则类C C继承类继承类A A。一个类除了具有该类。一个类除了具有该类所描述的性质外,还具有该类上层全部基类描所描述的性质外,还具有该类上层全部基类描述的一切性质。述的一切性质。基本概念基本概念25多态性多态性(Polymorphism)(Polymorphism)在类等级的不同层次中,在类等级的不同层次中,相同的消息相同的消息,被,被不同类不同类的对象接收,产生了的对象接收,产生了不
16、同的行为不同的行为。例:例:“打打”好处:增加软件系统的灵活性,减少了信好处:增加软件系统的灵活性,减少了信息冗余,提高了软件的可重用性和可扩充性。息冗余,提高了软件的可重用性和可扩充性。在在C+语言中,多态性是通过虚函数来实现语言中,多态性是通过虚函数来实现的。(动态联编)的。(动态联编)基本概念基本概念26重载(重载(OverloadingOverloading)有两种重载:有两种重载:函数重载函数重载是指在同一作用域内的若干个是指在同一作用域内的若干个参参数特征不同的函数数特征不同的函数可以使用可以使用相同的函数名字相同的函数名字;例:例:运算符重载运算符重载是指是指同一个运算符同一个运
17、算符可以施加于可以施加于不同类型的操作数不同类型的操作数上面。上面。例:例:cout cout“2”;“2”;表示向屏幕输出字符串表示向屏幕输出字符串2 2 x x2;2;表示将表示将x x中的二进制左移中的二进制左移2 2位位基本概念基本概念27 在在C+C+语言中函数重载是通过语言中函数重载是通过静态联编静态联编实实现的,也就是在编译时根据函数变元的现的,也就是在编译时根据函数变元的个个数和类型数和类型 ,决定到底使用函数的哪个实现,决定到底使用函数的哪个实现代码;对于重载的运算符,在编译时根据代码;对于重载的运算符,在编译时根据被操作数的类型,决定使用该算符的哪种被操作数的类型,决定使用
18、该算符的哪种语义。语义。基本概念基本概念283 面向对象建模面向对象建模什么是模型什么是模型使用模型的好处使用模型的好处三种模型三种模型模型的表示模型的表示29面向对象建模面向对象建模为什么要建模?为什么要建模?完全、彻底地完全、彻底地理解问题理解问题什么是模型?什么是模型?对事物的一种对事物的一种抽象抽象,由一组图示符号和组,由一组图示符号和组织这些符号的规则组成。目的:理解事物。织这些符号的规则组成。目的:理解事物。如下图:如下图:30面向对象建模面向对象建模31面向对象建模面向对象建模用面向对象方法开发软件,通常要建立三用面向对象方法开发软件,通常要建立三种形式的模型:种形式的模型:对象
19、模型对象模型:描述系统数据结构:描述系统数据结构 动态模型动态模型:描述系统控制结构:描述系统控制结构 功能模型功能模型:描述系统功能:描述系统功能324 对象模型对象模型对象模型表示系统的静态结构,描述了对对象模型表示系统的静态结构,描述了对象、对象间的关系。象、对象间的关系。建立对象模型用到的图形符号:建立对象模型用到的图形符号:(1)表示类的符号(包括属性和服务)表示类的符号(包括属性和服务)(2)表示类实例的符号)表示类实例的符号 (3)表示类间关系的符号)表示类间关系的符号334.1 4.1 表示表示类类&对象对象的图形符号的图形符号(p12)(p12)类类&对象:含义是对象:含义是
20、“一个类及属于该类的一个类及属于该类的对象对象”34例:计算圆的面积。例:计算圆的面积。表示表示类类&对象对象的图形符号的图形符号圆圆圆的半径圆的半径计算圆面积计算圆面积显示圆面积显示圆面积圆圆圆的半径圆的半径计算圆面积计算圆面积显示圆面积显示圆面积35类的命名规则类的命名规则 类名应富有描述性、简洁且无二义性,命名时类名应富有描述性、简洁且无二义性,命名时应该遵守以下几条准则:应该遵守以下几条准则:(1)使用标准术语使用标准术语 (2)使用具有确切含义的名词使用具有确切含义的名词 (3)必要时用名词短语作名字:如公司员工必要时用名词短语作名字:如公司员工表示表示类类&对象对象的图形符号的图形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 原理 技术
限制150内