700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 对比面向过程方法和面向对象方法的优劣(全)

对比面向过程方法和面向对象方法的优劣(全)

时间:2022-08-29 19:15:50

相关推荐

对比面向过程方法和面向对象方法的优劣(全)

对比面向过程方法和面向对象方法的优劣(全)

前言:

面对这个问题,我们首先能想到两个代表性的语言C/C++,亦或是Java。区别大,优劣也区别明显。我们刚开始学习编程时都会面对“HelloWorld”“A+B Problem”等等的问题,面向过程程序更偏向于算法,面向对象更偏向于开发。简单的问题完全不需要使用面向对象,其次,面向对象能够编写的问题面向过程也基本可以编写,面向对象的优势不仅在于代码的重用性,所开发的软件越大,面向对象的好处就越体现出来。本篇作者集合网上的一些文章,加上作者本人的理解,表达也较为浅显,若有错误欢迎指出,虚心接受。

一、理解面向对象与面向过程

理解面向对象,首先要理解几点:

1、 面向对象是相对于面向过程而言

2、 面向对象将执行的动作以及功能封装进了对象,强调了对象具备一定的功能

3、 开发与设计的过程:不断的创建对象,使用对象,管理对象,维护对象及行为。

4、 面向对象所拥有的封装、继承、多态等功能

5、 类是对象的抽象,对象是类的具体实例

6、 对象是具体的而类是抽象的

面向过程则与之不同:

1、 面向过程以事件为中心,将问题模块化步骤化,使用函数实现各个步骤,调用函数将事件实现

2、 过程化使任务变得明确,代码短小且可读性高,程序效率高

3、 因过程化节点清晰,便于分析

二、优缺点

这里只举个别例子

1、代码的效率

这里我们举个例子,算一下多项式

在给定点x的值,我们在调用函数时加入跟踪时间的函数。主要代码如下:

通过运行大于一万次次我们能计算得到,每个c语言调用用时大概是0.4ns,运行速度还是比较快的,若进行开发,则会导致代码冗杂与执行时间的问题,而面对对象则是需要什么调用什么。

除此之外,面对对象中,类是抽象的,不用占内存。

2、程序开发与维护

还是举个例子,开发下五子棋程序:

面向过程:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白棋(6)绘制画面(7)判断输赢(8)返回步骤(9)输出结果

面向对象:(1)黑白双方,行为一致

(2)棋盘类,负责绘制画面

(3)规则类:负责判定犯规、输赢等

可见,面向过程始终关注如何一步一步执行函数,通过控制代码让程序顺利运行。而面向对象结构清晰,程序更加符合人类的思维方式。在程序维护时面向过程的代码也会令人眼花缭乱。

3、 代码的量以及多态,封装,继承

举例:

使用java编程语言,创建了一个长方形类,包含两个成员变量,计算面积和周长的方法并且能返回值:

创建一个正方形类,继承长方形类的成员变量:

创建测试类:

如果实现相同功能我们来看看c语言实现:

运行结果如下:

可见,如果想在程序中添加更多的功能,java编程语言只需要通过继承创建新的类即可,而面向过程的c语言需要添加新的函数从而进行调用,继承的特性可以使子类拥有父类的方法,通过继承可以实现概念的重用,提高了代码的可扩展性。

4、 关于开发

在开发中,Java作为面向对象的语言,封装了大量的方法,而且拥有多样化和功能强大的开发工具支持,使得开发效率大大提升,java将方法封装进了包中,使用时导入包使用“类.方法”即可进行使用。

这里举一个简单的图形界面计算a+b的程序,代码如下(幅计算结果):

清晰可见,我们仅用几行代码便完成了图形界面的编程,若使用c进行图形界面的编程则需要用户安装图形库,而图形库仅支持特定的几款编译器。

5、 Java的劣势

虽然Java具有垃圾回收等等优势,但劣势也相应存在,没有完美的编程语言,只有完美使用它的人,首先,java在虚拟机中运行使得java程序运行素的变慢,其次,java程序的运行需要环境,虽然有着“一次编写,到处运行”的优势,但运行的前提是该系统要安装Java虚拟机。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。