130 likes | 304 Views
面向对象程序设计. 电气与信息工程学院 钱丽萍 Email:wangzs@vip.sina.com. 2.1 从面向过程到面向对象. 主要目的是 理解 面向过程的程序设计和面向对象的程序设计在本质上有什么 不同 。主要从以下几个方面来讲解: 计算机的工作过程 面向过程的程序设计 面向对象的程序设计. 计算机的工作过程 — 基本结构图. 控制器. 程序. 内 存 储 器. 程序 原始数据. 原始数据. 运算器. 输入设备. 结果. 输出设备. 结果. 外存储器. 输入、运算、输出. 计算机的工作过程. 计算机在程序的控制下解题
E N D
面向对象程序设计 电气与信息工程学院 钱丽萍 Email:wangzs@vip.sina.com
2.1 从面向过程到面向对象 主要目的是理解面向过程的程序设计和面向对象的程序设计在本质上有什么不同。主要从以下几个方面来讲解: • 计算机的工作过程 • 面向过程的程序设计 • 面向对象的程序设计
计算机的工作过程—基本结构图 控制器 程序 内 存 储 器 程序 原始数据 原始数据 运算器 输入设备 结果 输出设备 结果 外存储器 输入、运算、输出
计算机的工作过程 • 计算机在程序的控制下解题 • 程序设计语言的发展经历了五代(前三代语言编写的程序本质上是相同的,都是按照机器的工作过程来编写,只不过程序的描述语句越来越接近人的思维,通用性越来越强)
计算机的工作过程 例:计算圆面积。 s=3.14*r*r ( r=15 ) 人类思考问题的过程? 计算机工作的过程? 人类编写的程序?
面向过程的程序设计 标准C语言源程序 #include <stdio.h> void main(){ float r;double s; printf("Input r:"); scanf("%f",&r); //输入 s=3.14*r*r; //运算 printf("The area is:%f\n",s); //输出 }
面向过程的程序设计 • 程序设计工作主要围绕解题过程(输入-运算-输出)-功能分解 • 程序功能隐含在程序代码中—理解困难 • 维护(修改)困难
面向对象的程序设计 • 人类习惯的解决问题的方法:“顾客--服务员”的工作模式。 例:去理发馆理发 • 面向对象的方法模拟人类习惯的解题方法,用对象分解取代功能分解,程序中的所有对象分工协作,共同完成整个程序的功能。 例:求圆面积的程序
void main() { circle MyCircle1; MyCircle1.GetRadius(); MyCircle1.ShowArea(); } class circle { private: float r; public: void GetRadius(float NewR); void ShowArea(); };
面向对象的程序设计 • 面向对象方法的四个要点: (1)面向对象的软件系统由对象组成; (2)所有的对象划分为对象类,每个类由数据和方法组成; (3)若干个类按照子类(派生类)与父类(基类)的关系组成了层次结构;--继承,如汽车与交通工具; (4)对象之间通过传递消息互相联系。 OO=对象+类+继承+消息 例1-2:矩形由一个点和长、宽构成。 例1-3:班级中男学生和女学生的性别和年龄信息。
面向对象的程序设计 • 面向对象方法的优点 (1)与人的思维习惯一致 (2)稳定性好 (3)可重用性好 (4)可维护性好
本章小结 本章分析了面向过程的程序设计和面向对象的程序设计的不同,强调了面向对象程序设计的特点和优点。 要求:初步了解和掌握面向过程和面向对象方法的不同点以及面向对象方法的思想: OO=对象+类+继承+消息
思考与作业 思考题: • 试比较面向过程的程序设计方法和面向对象程序设计方法的不同。 • 为什么说面向对象方法更接近人类习惯的思维方法?