面向对象是一种 对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向过程是一种以过程为中心的编程思想。
面向过程
面向对象 | 面向过程 |
---|---|
c++、java、python、c#… | c … |
以类为中心 | 以函数为中心 |
对象=数据(数据类型)+行为(函数) |
下面用通俗的例子来说明他们的区别。
以加用电器为例:
洗衣机:
功能上:洗衣服
外观:类型(滚筒波轮)
品牌 (小天鹅,海尔)
长,宽,高
型号
c语言的表述:
struct 洗衣机{
int nwidth;
int nheight;
int nlength;
int ntype;
int nbland;};
void 洗衣服(洗衣机,衣服)
{
}
洗衣机 海尔洗衣机;
洗衣服 (海尔洗衣机,脏衣服)
这样有一个缺陷,就是洗衣服与洗衣机的关联不强烈,洗衣机本身就有洗衣服的功能。这样的话倘若这样写
冰箱 海尔冰箱
洗衣服(海尔冰箱,脏衣服)
也是可以成立的。应该把洗衣机的功能放在洗衣机中。
c++语言的描述:
struct 洗衣机{
int nwidth;
int nheight;
int nlength;
int ntype;
int nbland;};
void 洗衣服(衣服);
洗衣机 海尔洗衣机;
海尔洗衣机.洗衣服(脏衣服);
此时
冰箱 海尔冰箱
海尔冰箱.洗衣服(脏衣服)
便不能执行了。