|
PO(Procedure Oriented,面向过程)。
面向过程是一种按步骤一步步解决问题的编程思想。
如要完成做菜的任务,需要按顺序完成以下几步:
(1)洗菜
(2)切菜
(3)炒菜
一步一步执行,最终完成任务,这就是面向过程的思想。
OO(Object Oriented,面向对象)。
面向对象将事物都看成对象,将具有相同特征的实物看作类。通过对类与对象的继承,封装,多态的实现,完成模拟现实从而决绝问题。
OP思想
现实中的事物具有一定的属性和行为,如一只白猫有毛,胡须等(属性),会跳,喝水,吃(行为),我们将所有的猫(黑猫,白猫,花猫等)看作一个类。这里的各种猫是具有相同属性和行为的一个集合,我们将这个集合成为抽象数据类型(ADT)。对应到编程中,我们将具体的一只白猫看作一个对象,将所有的猫看作一个类。猫的属性对应为成员变量,行为对应为成员方法。我们吧通过类创造出的一个具体的对象叫类的实例化。
封装:通俗的说就是该给谁看的给谁看,在访问权限上进行限制。
比如人这个类实例化出一个对象小明,小明有一个属性,有钱。另一个人小张想问小明借钱。对应现实情况,小张只能问小明借,而不能直接拿小明的钱,小张也不能知道小明到底有多少钱。在这里就要将“钱”这个属性进行封装,使得只有小明自己才能看到或者拿出钱,而别的对象就不可以看到小明自己的私有信息。
继承:简单的说是为了实现代码的复用性。
假设所有动物都会吃饭喝水。如果实现一个代码,表示所有的猫类会喝水吃饭,以后再实现鸡类,鸭类,鹅类等等都会吃饭喝水,如果在每个类中将这些相同的吃饭喝水都写一次,那么我们将会在这些同样的工作上浪费大量的精力,影响工作效率,因此实现继承机制,让猫,鸡,鸭,鹅类继承动物类吃饭喝水的属性,就可以使得代码的重复量大大减小。
多态:龙生九子,各个不同
还是以猫类为例。猫有名字这个属性。但是实例化到具体的每只猫会有一些差别,比如我家的猫叫咪咪,隔壁小张的猫叫小白,可以看出类实例化对象时每个个体可能会有所不同。因此采用多态的形式,将对象的差异在实例化时体现出来。 |