02面向对象编程与非面向对象编程

02面向对象编程与非面向对象编程

ID:36314172

大小:365.45 KB

页数:19页

时间:2019-05-09

02面向对象编程与非面向对象编程_第1页
02面向对象编程与非面向对象编程_第2页
02面向对象编程与非面向对象编程_第3页
02面向对象编程与非面向对象编程_第4页
02面向对象编程与非面向对象编程_第5页
资源描述:

《02面向对象编程与非面向对象编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象编程与非面向对象编程山东大学计算机学院1软件开发方法软件工程所采用的方法不是唯一的,自软件工程出现以来,人们已经提出了多种软件开发方法,例如:功能分解法、数据流法(结构化方法)、快速原型法、信息模型法、面向对象方法。山东大学计算机学院2结构化软件开发方法简介1978年,E.Yourdon和L.L.Constantine提出了结构化开发方法SASD(StructureAnalysisStructureDesign)也称面向数据流的软件开发方法把软件系统的功能看做是根据给定的输入数据,进行相应的运算,然后输出结果。功能输入数据输出数据结

2、构化设计是属于自顶向下的设计,在设计阶段就不得不考虑如何实现系统的功能,因为分解的过程其实就是实现功能的过程。局限性不能灵活地适应用户不断变化的需求比如要求修改现有软件的实现方式或追加新功能时需要自顶向下地修改模块的结构,有时甚至整个软件系统的设计被推翻。结构化编程SP(StructureProgramming)程序的主体是方法方法是最小的功能模块一组相关的方法组合成一个大的功能模块结构化开发过程举例一个画板系统Panel包括4个功能选择形状画长方形画圆画直线自顶向下结构化分析设计工具:数据流图DFD选择形状模块数据流图结构化编程定义形状标

3、示常量drawCircle()drawLine()drawRectangle()selectShape()接收用户输入的形状switchvoidselectShape(){intshape;scanf("%d",&shape);switch(shape){caseCircle;drawCircle();break;caseLine;drawLine();break;caseRectangle;drawRectangle();break;default;printf("输入的形状不存在");break;}}假定需求发生变化要求增加一个画三角形

4、的功能需要对系统做多处改动增加一个形状常量定义增加一个画三角形的功能方法在selectShape中增加一个分支逻辑结构化开发方法制约了软件的可维护性和可扩展性模块之间的松耦合性不高修改或增加一个模块会影响到其他模块这些缺陷的根本原因在于:自顶向下地按照功能来划分。但是软件的功能不是一成不变的软件系统中最小的子系统是方法。方法和一部分与之相关的数据分离,全局变量和常量数据分散在系统的各个角落,削弱了各个系统之间的相对独立性。山东大学计算机学院13非面向对象编程对于非面向对象编程,程序往往是面向过程或者面向数据的。这些程序中通常有可全访问的数据

5、及过程,由主程序或其子程序来控制及操作这些数据。程序的每个部分都可以访问全局数据,得到数据的一部分,操作这些数据,然后在在需要时,保存对数据的更改。山东大学计算机学院14对于面向对象编程程序被划分为一组通信的对象。每个对象均封装了关于某个概念所有行为和信息实现功能的能力、实现功能所需的“知识”或数据被分布在对象之中。当一个对象对其他对象有需求时,就向该对象发出消息,这个对象接受到此消息后做出相应的动作并很有可能返回值给调用者。第一个对象甚至可以在第二个对象不存在的情况下创建该对象山东大学计算机学院15因此,要开始进行面向对象编程时,通常就是

6、先创建几个对象,然后让这些对象开始通信。这种面向对象编程的观点,即对象分摊工作和责任,对我们而言是十分熟悉的,因为现实中人类也采用这样的交互方式。例如一位企业主,并不需要对所有的事亲历亲为,事实上,该企业主只需要将任务分配给雇员。每位雇员不仅要完成给定的任务,并且还得负责维护和该任务相关的数据。比如,秘书不仅需要负责打印文件,也要负责将文件存放在适合的档案柜中;并且,如果文件中存放的是机密数据,秘书也要负责保护这些文件,并且负责允许或拒绝他人对文件的查看。在秘书的工作过程中,他可能还需要办公室内外其他人员的帮助。山东大学计算机学院162.1

7、.2面向对象语言类(class)的概念可以从建模角度及编程语言的角度来理解。在设计软件应用的时候,类模型将对系统中重要的概念进行抽象处理,建立良好定义的责任及与其他类的良好关系。在面向对象编程语言中,类可以被视为对象的模板,而这些对象描述了某种行为、某些责任以及某些相关数据对象(object)是类的实例。一个对象就类似于一位秘书或一位警察。对象所属的类定义了该对象拥有的数据类型、该对象的行为及该对象对这些数据的责任。但对于一位秘书而言,个人拥有用各自需要维护的数据(各自的状态)。山东大学计算机学院17对象之间通过消息传递的方式通信并命令彼此

8、进行动作。通过向其他对象传递消息,第一个对象让第二个对象执行某些代码。这些代码实际上就是一个过程浓面向对象语言中称为方法(method),该过程与第二个对象关联。因此,消息传递实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。