查阅得到的资料:
面向过程"(Procedure Oriented)是一种以过程为中心的编程思想。
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。
面向过程:注重做的步骤和过程
面向对象:注重是谁做
面向过程:吃(狗,屎)
面向对象:狗(吃)屎
面向过程:编年体
面向过程:纪传体
例子:
用两种思想同时实现一个功能:5个人A、B、C、D、E,分别有性别,年龄两个属性,现在A,B属于YY家族,CDE属于JJ家族。实现其中一个功能:让家族有比较出年龄最小的和年龄最大的人,统计出男性的人数和女性的人数。
用面向过程写:
age_A=XXX
age_B=XXX
.
.
.
sex_A=0(0,1代表性别)
sex_B=1
.
.
.
算法1:在A、B中求出要求出的量
算法2:在C、E、D中求出要求出的量
用面向对象写:
建立人的类:
属性1:年龄
属性2:性别
建立家庭类:
方法1:添加人
方法2:比较年龄最大的人
方法3:比较年龄最小的人
...
A=人类(性别、年龄)
B=人类(性别、年龄)
...
YY=家庭()
YY.添加人(A)
YY.添加人(B)
...
YY.比较年龄最大的人
...
比较来看:
面向过程要什么就直接写什么,要多少个变量就直接申请多少个变量,直接干净。
面向对象是把功能差不多的写成一个“模块”,这个模块包含相同的方法和属性,需要就调用,并用这些模块彼此配合实现功能。
面向过程的没有这种“模块”,万一我不想要年龄这个属性了,或者给你加几个条件,那所以设计年龄的变量都要重新写一遍,面向对象就只用在人类的属性更改一下即可。在庞大的工程里面,这是很方便维护的。
而且面向对象里面也会有按照过程一步步执行的功能,不能把两者完全割裂开来。