刘雅菲 宇澳 齐笑甜
摘 要:面向过程和面向对象作为我们编程常用的方法,在高级领域中有广泛的应用。在计算机编程中,各有其优势和长处,为写出复杂度更低的程序,使之拥有更好的性能,我们要对其特点有明确的了解。该文主要通过具体實例分析面向过程和面向对象在不同语言中的用法,从而对其编程风格做出更明确的阐述,能够更深入地使用、了解这两种方法。
关键词:程序设计 面向过程 面向对象
中图分类号:TP31 文献标识码:A 文章编号:1672-3791(2020)03(b)-0003-02
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。也可被称为“面向记录”编程思想[1],主要语言有Pascal、C语言等。面向对象(Object Oriented)是一种以事物为中心的编程思想。采用对象、类以及一些相关概念所进行的程序设计。主要有Eiffel、C++、Java、PHP等[2]。
1 面向过程与面向对象基本特点分析
面向过程最常用的一个分析方法就是“功能分解”,即先将用户需求分解成模块,然后把模块分解成大的功能,再把大的功能分解为小的功能,最终分解成不同的函数,这种方式被称为“自顶向下”,采用结构化思想,原则是“先整体后局部”“先大后小”[3],便于程序的后期调试和维护。
面向对象的核心为对象,对象是人们要研究的各种事物,它可以是日常生活中具体的事物,还能是一些抽象的规则、计划等。对象的抽象化为类。简单来讲,类=数据+操作。其中,数据用来描述对象的性质和状态;操作是指对象的行为,而具有相同和相似性质的一组对象则称为“类”。将繁琐的步骤进行行为、功能,模块化,就是面向对象,其核心为事物整体,是把构成问题的事物分解成各个对象,建立对象的目的不是为了完成某一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
在面向对象和面向过程两种方法中,面向对象方法的对象和面向过程的数据是相互对应的;类作为一种抽象的数据类型,与面向过程的结构存在相似点;而方法和函数则分别是两种编程方法的主要组成部分。在面向对象编程思想中,对象以类的形式,用代码写成可描述的属性或方法,通过相互传递消息来完成通信,又通过处理,形成抽象或具体的类;在面向过程的编程方法中,同理,我们以函数的形式,通过函数调用来完成,我们又能对数据做出新的处理。通过此图(见图1),我们可以明确地看出面向对象和面向过程的异同点。
2 程序执行机制
为了更清晰地了解两种方法之间的关系,我们以典型的“求长方形的周长和面积”为例,对比分析面向过程和面向对象程序设计方法之间的异同,从而明确分析二者的使用场景。
2.1 面向过程程序设计
我们首先要确定想做的内容,先定义求面积和周长的函数,写出周长和面积的相关算法,最后通过调用。具体代码为:
int Area(int a,int b)//求面积
{int s;//定义面积变量
s=a*b;//面积公式
return s;}
int Perimeter(int a,int b)//求周长
{int c;//定义周长变量
c=2*(a+b);//周长公式
returnc;}
int main()
{intl,w,s,c;//定义长方形的长,宽,面积,周长
scanf("%d%d",&l,&w);//手动输入长和宽
printf("长方形的面积为%d,周长为%d\n",Area(l,w),Perimeter(l,w));//输出面积和周长
return0;}
2.2 面向对象程序设计
既然题目所求的对象为“长方形”,因此,我们这道题就要以长方形为中心展开。
而类作为对象的抽象化,就要先分离出“长方形”这个对象的属性,具有长和宽,因此我们就书写相应的方法与函数,我们需要求其周长和面积。因此,我们定义了一个长方形类,最终在主函数中调用,从而求出某具体长方形的面积。详细代码如下。
public class Rect {//类代码
public double length;
public double width;
public double getLength()
{return length;}
public void setLength(double l)
{ l = length;}
public double getWidth()
{ return width; }
public void setWidth(double w)
{ w = width; }
public Rect(double l, double w)
{ l = length;
w = width;}
public double SRect() //求面积
{ return length*width;}
public double CRect() //求周长
{return 2*(length+width);} }
3 结语
面向过程和面向对象,程序的编写发生了根本性的变化:C语言作为典型的“面向过程”设计语言,我们发现面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤实现,使用的时候按需调用。Java是典型的“面向对象”设计语言,从上文一小段代码可以看出,面向对象就好比团队合作,需要很多人完成。
面向过程思想是我们每一个人天生具备的。在编程时,我们总会不自觉地去考虑怎么来完成某一需求,分析出具体的步骤,然后按照步骤来一步步实现。但是在现实生活当中,并不是每一件事都可以自己独立来完成,需要合作才可以完成某一项复杂的工作。这样来看的话,面向对象思想似乎更符合人们的做事方式,也更生活化。
参考文献
[1] 李广松.完全面向对象项目式《C++程序设计》课程改革与创新[J].电脑知识与技术,2014,10(12):2781-2784.
[2] 刘雍.从面向过程到面向对象思路转换[J].硅谷,2008(10):45.
[3] 卜丽娜.大型建筑用能管理监测系统应用研究[D].湖南大学,2013.