出发点和基本思想软件开发方法和过程尽可能接近.ppt

上传人:cn****1 文档编号:569823170 上传时间:2024-07-31 格式:PPT 页数:27 大小:419.81KB
返回 下载 相关 举报
出发点和基本思想软件开发方法和过程尽可能接近.ppt_第1页
第1页 / 共27页
出发点和基本思想软件开发方法和过程尽可能接近.ppt_第2页
第2页 / 共27页
出发点和基本思想软件开发方法和过程尽可能接近.ppt_第3页
第3页 / 共27页
出发点和基本思想软件开发方法和过程尽可能接近.ppt_第4页
第4页 / 共27页
出发点和基本思想软件开发方法和过程尽可能接近.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《出发点和基本思想软件开发方法和过程尽可能接近.ppt》由会员分享,可在线阅读,更多相关《出发点和基本思想软件开发方法和过程尽可能接近.ppt(27页珍藏版)》请在金锄头文库上搜索。

1、 出出发发点点和和基基本本思思想想软软件件开开发发方方法法和和过过程程尽尽可可能能接接近近人人类类认认识识世世界界以以及及解解决决问问题题的的方方法法与与过过程程,这这样样就就会会使使应应用用程程序序的的体体系系结结构构与与计计算算机机解解决决问问题题的的解解空空间间结结构构非非常常接接近近,从从而而使使程程序序开开发发、使使用用与与维维护护更加平坦、顺畅与迅速。更加平坦、顺畅与迅速。(1 1)什么是面向对象语言)什么是面向对象语言 面面向向对对象象语语言言继继承承了了面面向向过过程程的的高高级级语语言言的的结结构构化化设设计计、模模块块化化、并并行行处处理理等等优优点点,克克服服了了数数据据

2、与与代代码码分分离离的的缺缺点点。代代表表了了新新颖颖的的程程序序设设计计思思维维方方法法,将将研研究究的的任任何何事事物物视视为为对对象象,用用语语言言中中的的对对象象和类直接模拟现实世界的事物。和类直接模拟现实世界的事物。1.2.3 1.2.3 面向对象语言面向对象语言(2 2)发展过程)发展过程2020世纪世纪6060年代提出年代提出“面向对象面向对象”的概念的概念SmalltalkSmalltalkLispLispObject PascalObject PascalC+C+、 Visual C+ Visual C+ 、C# C# JavaJava:一次编写,多次使用,具有跨平台的优势,

3、一次编写,多次使用,具有跨平台的优势,适合在网络开发中应用。适合在网络开发中应用。Visual Basic: Visual Basic: 基于对象的可视化程序设计语言。基于对象的可视化程序设计语言。Visual FoxProVisual FoxProDelphiDelphiPower BuilderPower Builder等等2020世世纪纪9090年年代代已已处处于于适适用用阶阶段段,是是对对传传统统程程序序设设计方法的变革。计方法的变革。 对对象象(Object)Object)是是由由描描述述该该对对象象属属性性的的数数据据以以及及可可以以对对这这些些数数据据施施加加的的所所有有操操作作

4、封封装装在在一一起起构构成成的的统统一一体体。每每个个对对象象就就是是一一个个微微型型程程序序,有有自自己己的的数数据、操作、功能和目的。据、操作、功能和目的。 面面向向对对象象思思想想认认为为,客客观观世世界界是是由由对对象象组组成成的的,任任何何事事物物都都是是对对象象。每每个个对对象象有有自自己己的的动动态态行行为为和和静静态属性。态属性。 面面向向对对象象的的软软件件系系统统是是由由相相互互协协作作而而又又彼彼此此独独立立的对象组成。如:的对象组成。如: 图图1 1、2 2、3 3。(3 3)面向对象程序设计的基本概念)面向对象程序设计的基本概念 面向对象技术以面向对象技术以抽象数据类

5、型抽象数据类型、模块封装模块封装和和内部内部信息隐蔽信息隐蔽为主要特征。不把程序看成是工作在数据上为主要特征。不把程序看成是工作在数据上的一系列过程和函数的集合,而是把程序看成是相互的一系列过程和函数的集合,而是把程序看成是相互协作而又彼此独立的对象的集合。协作而又彼此独立的对象的集合。 99-1 99-1班学生成绩表班学生成绩表插入插入删除删除显示显示 学号学号 姓名姓名 成绩成绩 1 1 王平王平 86 86 2 2 李红李红 92 92R = 10R = 10(10 ,6 (10 ,6 ) )移动移动显示显示放大放大缩小缩小图图-1-1图图-2-2图图-3-3一一家家公公司司的的对对象象

6、模模型型参参加加 员工员工 公司公司 雇用雇用 解雇解雇 名字名字电话号码电话号码主要产品主要产品 地址地址 姓名姓名 地址地址身份证号身份证号 工资工资为之工作为之工作工工人人经经理理 项目项目 项目名项目名 预算预算 优先级优先级 预算预算主主持持部门名部门名部门部门 产品产品 产品名产品名 预算预算 成本成本 价格价格 报价报价生产生产管理管理1+1+1+1+1+1+1+1+0, 10, 1职务职务1+1+DataMethods对对 象象面向对象技术具有如下良好特点:面向对象技术具有如下良好特点:(1 1)模块性;)模块性; (2 2)封装功能;)封装功能; (3 3)继承性;)继承性;

7、(4 4)易维护性;()易维护性;(5 5)扩充性;)扩充性;类类( (Class)Class)现实世界中人们习惯于把具有相似特征的事物归为现实世界中人们习惯于把具有相似特征的事物归为 一类,在面向对象的软件技术中,把具有相同数据一类,在面向对象的软件技术中,把具有相同数据 和相同操作的一组相似对象抽象为类。和相同操作的一组相似对象抽象为类。 对象是类的具体实例。对象是类的具体实例。 例如不同班级的学生成绩表可以抽象为例如不同班级的学生成绩表可以抽象为学生学生成绩表成绩表 类类。实例(实例(Instance)Instance)某个特定类所描述的一个具体的对象。某个特定类所描述的一个具体的对象。

8、属性(属性(Attribute)Attribute)类中所定义的数据。类中所定义的数据。方法(方法(Method)Method)对象所能执行的操作。对象所能执行的操作。消息消息( (Message)Message)对象彼此之间仅能通过对象彼此之间仅能通过 消息互相联系,对象内消息互相联系,对象内 部对数据的处理是通过部对数据的处理是通过 消息来激发的。消息来激发的。 C1.Insert(10,C1.Insert(10,王平王平,98 ),98 ) 删除删除 插入插入 显示显示 统计成绩统计成绩 学号学号, ,姓名姓名 成绩成绩 类的特性类的特性 类具有类具有封装性(数据抽象)、继承性和多态性封

9、装性(数据抽象)、继承性和多态性, 即子类不仅可以继承父类的数据和方法,而且还可即子类不仅可以继承父类的数据和方法,而且还可 以增加新的方法或修改原有的方法。以增加新的方法或修改原有的方法。继承(继承(Inheritance)Inheritance)子类能够直接获得父类已有的特性。子类能够直接获得父类已有的特性。重载(重载(OverloadOverload)子类可对父类中已有的操作重新给出其实现子类可对父类中已有的操作重新给出其实现 方法。方法。 函数(虚函数)重载、运算符重载。函数(虚函数)重载、运算符重载。 多态性(多态性(PolymorphismPolymorphism)同一个操作作用于

10、不同的对象上可以同一个操作作用于不同的对象上可以 有不同的解释,产生不同的执行结果。有不同的解释,产生不同的执行结果。 “draw”draw”操操作作作作用用在在“矩矩形形”对对象象上上,画画矩形。矩形。 作用在作用在“圆圆”对象上,则画圆。对象上,则画圆。( (a):a):先创建一些具体类先创建一些具体类 食品食品 价钱价钱 热量热量 重量重量 买,吃买,吃 烹调烹调 土豆土豆 削皮削皮 切片切片 肉馅肉馅肥瘦比例肥瘦比例 绞肉绞肉( (b): b): 归纳出抽象类归纳出抽象类 肉馅肉馅 价钱价钱 热量热量 重量重量肥瘦比例肥瘦比例 买,吃买,吃 烹调烹调 绞肉绞肉 土豆土豆 价钱价钱 热量

11、热量 重量重量 买,吃买,吃 烹调烹调 削皮削皮 切片切片 食品食品 价钱价钱买买, , 吃吃 重量重量 热量热量 烹调烹调( (c): c): 进一步进一步具体化具体化 土豆土豆 削皮削皮 切片切片 肉肉肥瘦比例肥瘦比例 食品食品 价钱价钱买买, , 吃吃 重量重量 热量热量 烹调烹调 肉馅肉馅 绞肉绞肉 五花肉五花肉 切法切法 切肉切肉( (d): d): 再次再次归纳归纳 五花肉五花肉肥瘦比例肥瘦比例 切法切法 切肉切肉 土豆土豆 削皮削皮 切片切片 肉馅肉馅肥瘦比例肥瘦比例 绞肉绞肉以以C C语言与语言与C+C+语言为例,理解软件编程的实质语言为例,理解软件编程的实质什么是什么是C+C

12、+语言?语言?C C语言语言OOPOOP + +C+C+OOPOOP:面向对象的程序设计面向对象的程序设计 传统程序设计:传统程序设计: 结构化编程结构化编程结结构构化化编编程程是是把把复复杂杂程程序序划划分分成成一一系系列列简简单单部部件件的的技技术。术。 例如:设计一个程序,对不同类型的图形求其面积,例如:设计一个程序,对不同类型的图形求其面积, 并打印结果并打印结果求图形面积求图形面积打印结果打印结果圆的数据结构圆的数据结构矩形的数据结构矩形的数据结构定义全局数据结构定义全局数据结构任务分解为过程和数据任务分解为过程和数据图形的类型图形的类型求图形面积求图形面积打印结果打印结果圆的数据结

13、构圆的数据结构矩形的数据结构矩形的数据结构全局数据结构中增加新的成员全局数据结构中增加新的成员图形的类型图形的类型三角形的数据结构三角形的数据结构增加求三角形面积增加求三角形面积增加输出三角形面积增加输出三角形面积全局数据结构的修改导致过程的修改全局数据结构的修改导致过程的修改 过程将修改过程将修改 面向对象技术变革了软件设计的传统方法面向对象技术变革了软件设计的传统方法解解决决结结构构化化程程序序设设计计不不足足的的方方法法,就就是是限限制制数数据据的的存存取取权权限限,把把数数据据和和使使用用此此数数据据的的过过程程紧紧紧紧封封装装在一起,定义成基本数据类型或称为类。在一起,定义成基本数据

14、类型或称为类。 通用图形类通用图形类求求面积,打印面积,打印 圆圆 类类求求面积,打印面积,打印 矩形类矩形类求求面积,打印面积,打印 软件结构是类的层次结构软件结构是类的层次结构通用图形类通用图形类求求面积,打印面积,打印 圆圆 类类求求面积,打印面积,打印 矩形类矩形类求求面积,打印面积,打印 三角形类三角形类求求面积,打印面积,打印 正方形类正方形类求求面积,打印,面积,打印,求周长求周长通过类的继承扩展软件结构通过类的继承扩展软件结构软件结构在稳定中健壮生长软件结构在稳定中健壮生长传统程序设计与面向对象程序设计的比较传统程序设计与面向对象程序设计的比较:全局数据全局数据局部数据局部数据

15、过程过程1 1过程过程2 2过程过程3 3过程过程4 4基基于于数数据据的的层层次次结结构构基基于于过过程程的的层层次次结结构构传统的程序设计传统的程序设计 图图-14-14Data AData A子程序子程序1 1Data aData a子程序子程序2 2Data bData b主程序主程序子程序子程序1 1子程序子程序2 2DataDataA ADataDataa aDataDatab b数据数据操作操作数据数据操作操作数据数据操作操作数据数据操作操作对象对象A A对象对象B B对象对象C C对象对象D D面向对象的程序设计面向对象的程序设计 类的层次结构类的层次结构图图-15-15数据数

16、据操作操作对象对象#include/ create a classclass sample int i; public: void initial(); void display(); ; void sample: display() cout i endl; void main() sample A; A.initial(); cout “Object A ,i = ”; A.display(); 运行结果:运行结果:Object A ,i = 0Object A ,i = 00i对象对象Ai对象对象Avoid sample: initial() i = 0; # include class

17、 sample protected:int i; public:void initial();void display();void sample:initial()i=0;void sample:display()cout i endl;class newsample : public sample public: void add() i+; ;void main() newsample A; sample B; A. initial(); A.add(); B.initial(); A.display();i ii i对象对象A A对象对象B B0 0i i对象对象A A1 1i i对象

18、对象A A1 10 0i ii i对象对象A A对象对象B B10ii对象对象A A对象对象B BSample (父类父类)公有函数公有函数void initial();void display();保护数据保护数据i公有函数公有函数void initial();void display();void add();保护数据保护数据inewsample (子类子类)继继承承父父类类继继承承父父类类void initial();void display();void add(); 面面象象对象的编程使得为程序增添新的功对象的编程使得为程序增添新的功能变的简单。用户不必修改已有的代码,仅能变的简单。

19、用户不必修改已有的代码,仅增加新模块所必须的代码即可支持一个新的增加新模块所必须的代码即可支持一个新的对象。新模块既可以放在原来的程序文件中,对象。新模块既可以放在原来的程序文件中,也可以独立存储。自由改变对象的内部而不也可以独立存储。自由改变对象的内部而不影响程序的其他部分,增加了程序的模块化。影响程序的其他部分,增加了程序的模块化。(四)面向对象程序设计(四)面向对象程序设计一、掌握类的基本特性一、掌握类的基本特性(面向对象程序设计的优点)(面向对象程序设计的优点)二、了解面向对象程序设计的基本概念二、了解面向对象程序设计的基本概念作业:阅读第一章、第四章相关内容。作业:阅读第一章、第四章相关内容。问 题1.计算机技术日新月异,作为非计算机专业的学生,我们应该如何学,学什么?2.如何处理好学习计算机与本专业学习的关系?3.如何提高利用计算机网络获取知识、解决问题、开发软件的综合能力。4.如何培养再学习的能力和跨学科的综合能力。 面面向向2121世世纪纪的的计计算算机机系系统统,必必将将向向着着高高性性能能、网网络络化化和和智智能能化化方方向向发发展展,这这对对计计算算机机软软件件提提出出了了更更高高的的要要求求,也也为为计计算算机机软软件件的的发发展展提提供供了了更更为为广广阔的施展舞台,必将导致计算机软件的更大进步。阔的施展舞台,必将导致计算机软件的更大进步。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号