PO与OO的编程思想

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-21 12:16   816   0

PO(Procedure Oriented,面向过程)。

面向过程是一种按步骤一步步解决问题的编程思想。

如要完成做菜的任务,需要按顺序完成以下几步:

(1)洗菜

(2)切菜

(3)炒菜

一步一步执行,最终完成任务,这就是面向过程的思想。

OO(Object Oriented,面向对象)。

面向对象将事物都看成对象,将具有相同特征的实物看作类。通过对类与对象的继承,封装,多态的实现,完成模拟现实从而决绝问题。

OP思想

现实中的事物具有一定的属性和行为,如一只白猫有毛,胡须等(属性),会跳,喝水,吃(行为),我们将所有的猫(黑猫,白猫,花猫等)看作一个类。这里的各种猫是具有相同属性和行为的一个集合,我们将这个集合成为抽象数据类型(ADT)。对应到编程中,我们将具体的一只白猫看作一个对象,将所有的猫看作一个类。猫的属性对应为成员变量,行为对应为成员方法。我们吧通过类创造出的一个具体的对象叫类的实例化。

封装:通俗的说就是该给谁看的给谁看,在访问权限上进行限制。

比如人这个类实例化出一个对象小明,小明有一个属性,有钱。另一个人小张想问小明借钱。对应现实情况,小张只能问小明借,而不能直接拿小明的钱,小张也不能知道小明到底有多少钱。在这里就要将“钱”这个属性进行封装,使得只有小明自己才能看到或者拿出钱,而别的对象就不可以看到小明自己的私有信息。

继承:简单的说是为了实现代码的复用性。

假设所有动物都会吃饭喝水。如果实现一个代码,表示所有的猫类会喝水吃饭,以后再实现鸡类,鸭类,鹅类等等都会吃饭喝水,如果在每个类中将这些相同的吃饭喝水都写一次,那么我们将会在这些同样的工作上浪费大量的精力,影响工作效率,因此实现继承机制,让猫,鸡,鸭,鹅类继承动物类吃饭喝水的属性,就可以使得代码的重复量大大减小。

多态:龙生九子,各个不同

还是以猫类为例。猫有名字这个属性。但是实例化到具体的每只猫会有一些差别,比如我家的猫叫咪咪,隔壁小张的猫叫小白,可以看出类实例化对象时每个个体可能会有所不同。因此采用多态的形式,将对象的差异在实例化时体现出来。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP