谈谈你对面向过程和面向对象的理解
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步的实现,使用的时候一个一个依次调用就可以了。
面向对象就是把事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为
具体举例说明:
人把大象装进冰箱
面向过程:
总共分为三个过程:
第一步,人把冰箱门打开;
第二步,人把大象装进冰箱;
第三步,人把冰箱门关闭。
面向对象:
为了更好理解的说 总共分为三部分:
第一步,冰箱自己把门打开;
第二步,冰箱自己装进大象;
第三步,冰箱自己把门关闭。
其实一部分就可以, 冰箱自己把大象装进冰箱。
面向过程是具体化的,流程化的,需要你自己一步一步的去进行分析,一步一步的去实现。
面向对象是模块化,只需要抽象出一个类,这个是一个封闭的盒子,在这里拥有解决问题的方法。需要什么功能直接使用就可了,不必一步一步的去实现,至于它是怎么实现的(大象是怎么进入冰箱的)具体就不清楚了,会用就好。
其实面向对的底层还是面向过程,把面向过程抽象成类,然后进行封装,方便我们使用就是面向对象了。
类与对象的主要区别
对象:对象是类的一个实例,存在属性(成员变量)和行为(成员方法)。 例如:冰箱它是一个对象,属性:有名称,颜色,生产日期;行为:把大象装进冰箱。
类:类是一个模板,它描述一个对象的属性和行为。
面向对象的的最大理解就是低耦合,在面向过程中更注重的是因果关系, 因为打开冰箱门后,才能往冰箱里面放东西,放完东西之后需要关闭冰箱门。当不打开冰箱门的时候,你是无法往冰箱里面放东西。你的整个流程都会收到影响。而面向对象则是将一个程序拆分成许多块。冰箱自己把门打开,冰箱自己将大象装入,冰箱自己把门关闭,都是独立的模块。当门打不开的时候,大象一样也可以装进去(虽然不可思议但是,模块化确实是这样),门也可以关闭。甚至可以将先关门放东西然后在开门。或者,不把大象装进去,可以把凹凸曼拿出来。
面向对象和面向过程的拓展
面向对象的三大特征:封装、继承、多态,(四点的话还有一个:抽象);
面向对象的定义:面向对象顾名思义就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。
面向过程的定义:面向过程是“自上而下”的设计语言,先定好框架,再增砖添瓦。通俗点,就是先定好main()函数,然后再逐步实现mian()函数中所要用到的其他方法。
面向对象的优点和缺点
优点:易于维护、易于复用、易于扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
缺点:比较抽象,性能比面向过程低。
面向过程的优点和缺点
优点:性能比面向对象高,适用于简单系统,容易来理解。
缺点:不利于维护,复用,扩展。