自学Python-12 面向对象编程(一、概念篇)


自学Python-12 面向对象编程(一、概念篇)


如何理解面向对象编程

面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。

我们尝试着来理解下这段晦涩难懂文字。这段文字核心就是“其本质…”这句话,后面的内容都是在介绍模板这个东东。我们把这句话拿出来:
其本质是以建立模型、体现出来的、抽象思维过程、和、面向对象的方法。
还是很难懂,先多读两遍。这句话其实就是说:面向对象编程通过建立一个模板,体现出了两样东西:抽象思维过程和面向对象的方法。
“建立模型…抽象思维…面向对象”,这是我对面向对象编程的一个概念上概括性的理解。


举个例子来通俗的理解一下

案例1:小明晚上想吃排骨米饭,于是他来到超市,先去卖肉那买了排骨,又去卖米那买了大米,最后回家路过菜市场还买了点白菜,晚上回到家又炖了排骨蒸了米饭,最后美美的吃了一顿。

案例2:小明后来找了一个会做饭的女朋友,这一天他又想吃排骨米饭了,这时候他喊女朋友做给他吃,女朋友看了一下冰箱后告诉小明家里的大米没了,小明正在打游戏,直接甩了一句"我不管,你自己看着弄,今晚我必须要吃",于是女朋友只好去买米然后回来做饭。后来小明想吃面、想吃水饺都只需要吩咐给女朋友做,自己只管吃。

其中案例1是面向过程的,案例2就是面向对象的。我们下面用代码分别实现下两个案例,但在那之前,有几个概念需要介绍一下:

1.类

用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

2.对象

通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

3.实例化

创建一个类的实例,类的具体对象。

类就是我们上面说的模型,简单来说就是把具有相同特征的事物归为一类,例如老虎狮子大象都是动物,香蕉苹果梨都是水果,你我他都是人类。类就是一组具有相同属性和行为的对象的抽象。类不是一个实例,例如我说有个人偷东西,你知道我说的是谁吗?我要说小明偷东西,你才知道,小明就是人类的实例,因此我们说对象是类的实例,而创建一个类实例的过程,就叫实例化

案例1实现:


自学Python-12 面向对象编程(一、概念篇)

案例1我们定义了几个函数,对应着每一个步骤,合起来就是整个做饭的过程。因此案例1中我们面向的是整个过程。

案例2实现:


自学Python-12 面向对象编程(一、概念篇)

案例2我们抽象了一个女朋友类,会做饭,然后实例化了一个女朋友对象,直接调用女朋友的做饭方法,就能得到我们想要的,期间的步骤全部交给女朋友去完成,我们只看结果。因此这里我们面向的是女朋友这个对象,所以这是面向对象的。


看起来案例2使这件事情更加简洁,但其内部依然是基于面向过程的实现。这并不矛盾,关键在于你站在哪个角度去理解这件事情,面向对象更像是一个解决问题的方案,看重的是最终结果,而过程式则是解决不同层次的不同问题。总之,慢慢体会。回顾下文章开头概括的“建立模型...抽象思维...面向对象”,看我们在案例2中是否都运用到了。
我们介绍完了**类**和**对象**以及**实例化**的概念,面向对象还有很重要的三大特性:**封装、继承、多态**,篇幅原因,本篇文章不写了。(本来只想做个笔记,但由于这些天还有"不少"粉丝朋友们关注了我,我觉得这是对我的肯定,给了我很多动力,就拿这篇文章来说,我是有Java基础的,对我自己来讲,面向对象这块内容可以直接跳过,但我为了我可爱的粉丝朋友们,还是决定结合自身理解以及各方资料,整理了这样一篇文章,希望能帮助到你们吧--另外最近时间紧张,又在忙着写回答通过兴趣认证,文章更新的慢点了。)


分享到:


相關文章: