下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 浅谈面向对象和面向过程的程序设计 冯媛媛摘要:随着面向对象程序设计方法的出现,对象作为该方法的核心技术,正在得到新的开发语言和新的系统架构的支持,两种开发方法存在着质的区别。本文从面向过程程序设计的结构化思想和面向对象程序设计的抽象、封装、继承、多态技术入手做主要论述,详细介绍了两种程序设计方法的特点、优缺点以及相互联系。关键词:面向对象;面向过程;程序设计:tp311.1 :a :1007-9416(2017)07-0185-011 引言程序设计是为了解决某一类问题所设计的通用的解决办法的程序,通过运行程序后进行特定的输入域输出,最后得出
2、运行结果,是构造一个软件活动必不可少的部分,程序设计活动与大多数设计活动一样是为了平衡约束条件和相互矛盾的需求而进行的。计算机技术在早期发展阶段,机器资源非常昂贵,因此在设计程序时必须要考虑到时间、空间代价等因素,而随着计算机应用技术的发展和软件规模的扩张,程序的结构、可重用性、可维护性、可扩展性等因素在设计时显得尤为重要。现如今,面向对象和面向过程的程序设计是较为常用的两个成熟的设计方式。2 面向对象和面向过程的程序设计各自的特点2.1 面向对象的程序设计面向对象编程是使用对象的编程范式包含数据域、方法以及它们之间的交互来设计应用和程序。其程序设计方法包括数据抽象、封装、通信、模块化、多态和
3、继承。简单来看,我们可以对面向对象编程作出如下几点理解:首先,它必须将数据抽象为模块结构;其次,必须存在某种方式来实现代码的多态执行;最后,它至少能部分压缩代码和函数。面向对象的程序设计大都遵循传递者模式(mediator pattern),并且被设计为从sender中解耦caller,其都提供状态,且都是模块化的1。2.2 面向过程的程序设计面向过程是一种以事件为中心的编程思想,以功能(行为)为导向,按模块化的设计,分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在实现过程中一个一个依次调用即可。面向过程的程序设计是自顶而下的,首先他需要设计者将应用程序需要完成的业务按照功能分
4、类,并划分出子模块,同时将整个应用程序所要完成的事情写在一个main函数中,由该main函数对这一系列的子函数的进行调用。对于每个子函数来说,可以对其进行再次分解,使其变为模块更小的子函数。完成一个过程式的设计从本质上来说就是一直重复该过程。用一句话来概括面向过程的设计方法的特征即为:以函数为中心,并将其作为基本单位来划分程序,数据在这种设计方法中一般处于从属的位置。3 面向对象和面向过程的程序设计的比较3.1 从在开发过程中的运用来看面向对象和面向过程的程序设计面向过程的设计方法是通过逐步细化问题的方式来进行设计,该方法符合多数人的逻辑思维方式。但是由于过程式的设计是自顶向下的,这就需要设计
5、人员对要解决的问题有一个整体上的把握,但是现实情况中是很少有人能做到这一点的,尤其是在比较复杂的情况下,因此这种方法对于开发需求比较多的问题或比较复杂的工程项目而言,是不太适用的。开发一个系统的过程是一个创造性的过程,开发者或设计者不仅需要不断地去了解要开发的系统,还需要学习相应的技术,而过程式的设计方法忽略了这一点。面向对象的设计方法是自底向上的,它不需要在一开始用main概括出整个应用程序,其自底向上的特性允许程序设计者从问题的最底层开始逐步加深对系统整体的理解,开发者在设计过程中遇到的需求变化及得到的新的理解,都会再次作用到系统开发本身,形成一种螺旋式的开发方式。3.2 从编程语言来看面
6、向对象和面向过程的程序设计c语言是面向过程的设计方法的代表性语言,其包括定义数据的元素和定义操作的元素,比如在c语言中,要使得数据和操作分离开来,就要单独来定义数据和操作,数据和操作的元素在c语言中分别用结构和函数来定义。数據和操作的分离可能会造成对一种数据的操作分布在程序的各个角落,那么当我们要对数据和操作进行修改的时候,即便是微小的修改,也会变得非常困难。在面向过程的设计中,main()函数可以调用子函数,对于整个应用程序来说处在一个尤为重要的位置。一般来说在面向过程的设计方式中,对于整个系统的概括性描述开发者会写在一个main()函数中,之后再逐步细化出整个应用程序。然而,这样做会使得程
7、序的核心逻辑不够清晰,易与一些较外延和易变化的逻辑混淆在一起2。封装性、继承性和多态性是java语言中的三个典型的面向对象的特性。关于封装性:在java语言中,与程序相关的变量和方法由对象对其进行相应的封装,其中变量指对象的状态,方法指对象具有的行为。通过对象的封装,如通过对类中的成员设置访问权限,实现类成员信息的隐藏。关于继承性:通过继承可实现代码重复利用。java中的类基本都是通过直接或间接地继承java.lang.object类而得到的。在父类中,如果成员变量和方法的访问权限为private,则不能被子类继承。父类的方法能够被子类重写,子类与父类同名的成员变量也能被子类重命名,但java
8、语言不能够实现多重继承。关于多态性:在java语言中,多态性体现在两个方面:静态多态性和动态多态性,静态多态性也称为编译时多态,在编译阶段,编译器会根据参数的不同来静态确定具体调用哪个被重载的方法,由方法重载实现;动态多态性也称为运行时多态,由方法重写实现。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。4 结语总之,面向对象重视对现实世界的抽象,用于解决“做什么”在面向对象设计中,类封装了数据,而类的成员函数作为其对外的接口,抽象地描述了类。用类将数据和操作这些数据的函数放在一起,这可以说就是面向对象设计方法的本质。而面向过程的设计方法重视对问题的功能模块化
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《跳蹦蹦床的大象》少儿美术教育绘画课件创意教程教案
- 蒲公英课件文库
- 西南林业大学《产品摄影》2023-2024学年第一学期期末试卷
- 西京学院《设计模式》2023-2024学年第一学期期末试卷
- 2023年1月福建省普通高中学业水平合格性考试历史试题(原卷版)
- 陀螺课件 图文
- 西京学院《面向对象程序设计》2022-2023学年期末试卷
- 西华师范大学《小学数学课程与教学》2022-2023学年第一学期期末试卷
- 西华师范大学《运动技能学习与控制》2022-2023学年期末试卷
- 台儿庄介绍课件
- 2024-2030年中国干细胞医疗行业趋势分析及投资战略研究报告
- 消防安全培训内容
- 2024-2030年铝型材行业市场深度调研及前景趋势与投资战略研究报告
- 2024CSCO结直肠癌诊疗指南解读
- (正式版)QBT 2174-2024 不锈钢厨具
- 监控维修施工方案
- 是谁杀死了周日
- 解码国家安全知到章节答案智慧树2023年国际关系学院
- 典范英语7-4中英文对照翻译Oh,otto!Oh,otto
- 国家开放大学《管理英语4》章节测试参考答案
- 混凝土早强剂检验报告(出厂)
评论
0/150
提交评论