(1)面向过程:面向过程是指在解决一个问题的时候,先分析出如何解决问题以及解决问题的步骤,然后根据步骤一步一步进行实现
而面向对象:是把问题中所需要的事物抽分出来,将其所带有的数据和操作集合在一起,形成一个对象,每个对象都有各自的行为,当处理一个问题的时候,通过对各个对象的使用来解决问题
举例:就像指挥士兵打仗一样,面向过程则需要对每一步进行操作,比如先让五千步兵冲锋,然后派两千骑兵上阵等等一系列具体的操作;
但对于面向对象来说,它需要将不同兵种进行划分,每个兵种有对应的数目等等,然后每个兵种也有上战场的行为等等,在不同情况时调用所对应的行为。
分析:仅从操作步骤上而言,二者其实都需要完成其对应的操作,不过面向对象显得更有逻辑性一些,从代码层面会更有层次,但是就单一的问题而言,并没有简化的效果,它的更大优点在于将对象抽分出来之后,可以用来处理更多的问题,只需要在所需要的对象中加入数据以及行为操作,就可以实现对于多个问题的重复利用解决,这个在我们生活中很常见,往往一个对象不是只服务于一件事情的,而是在多个事情当中都有参与。
(2)面向对象的三大特性:
(1)封装:
将客观事物抽象成类,有其自身的属性(数据)和行为,将二者封装为一个独立不可分割的单元(对象),并且能够做到“信息隐藏”,通过对属性和行为的控制,在不同操作者使用对象时,有不同的权限,比如有的可读,有的可改等等
(更专业的术语)
(2)继承:
通过现有类(父类)创建新类(子类),子类可以继承父类的属性和方法,还可以扩展和重写父类的功能,比如水果是父类,苹果梨子香蕉等都是水果,继承了水果的各种性质,但是又有自己独特的性质
(3)多态: