Python零基础入门教程 13.面向对象

面向对象

大纲

视频地址https://www.bilibili.com/video/BV1ZT4y1j7d1?p=14

前言

Python是一门面向对象的编程语言,但这并不是说我们学Python这门语言就一定能找到对象(男/女朋友)的意思

Python零基础入门教程 13.面向对象

面向对象(Object Oriented Programming),简称OOP,它是一种程序设计思想(方法)

利用面向对象思想,能够使我们的代码更易于扩展、维护,所以能够极大地提高开发效率

Python零基础入门教程 13.面向对象

面向过程与面向对象

面向过程(Procedure Oriented Programming),简称POP,同样也是一种程序设计思想,但是它是一种以过程为中心的编程思想

编程思想 描述
面向过程 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
面向对象 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为

下面通过两个例子来,加深两种编程思想的理解

比如某天你接到一个任务,要求开发一个程序,那么我们可以把任务拆分成大致以下步骤:

  1. 需求分析(是啥程序)
  2. 确定架构与技术栈(要怎么做)
  3. 测试(能用么)
  4. 交接(能用!)

这就是面向过程,分析出解决问题的步骤,然后一步一步的来

老板:"小许,7天时间开发出个淘宝来,时间应该没问题吧?"
老板:"小李,5天时间开发出个百度来,时间应该没问题吧?"
老板:"小吴,3天时间开发出个微信来,时间应该没问题吧?"

老板并不管这三个程序要怎么开发,只需要管这三位苦逼程序员能不能把这三个任务完成

这就是面向对象思想,专注于某个功能,它站在更高的地方思考问题

所以我们要做老板还是员工?

Python零基础入门教程 13.面向对象

面向对象的三大特性

下面用这张图来理解面向对象的三大特性

Python零基础入门教程 13.面向对象

抽象

很久很久以前,我们的祖先发现鸟、鱼等它们都会吃东西,所以以此把它们归类成动物,抽象成所有的动物都会吃东西

抽象也叫封装,我们把数据和能力组合成一个对象的过程就叫做封装

比如所有的动物都有大小(数据),都可以吃东西(能力)

动物是一个,那么具体的某个动物,比如猴子、鲤鱼,它们就是对象,我们可以知道它们的大小,也可以喂它们吃东西

封装只是面向对象的第一步,目的是把现实世界的东西抽象成对象

面向对象真正有威力的地方是继承和多态

继承

鸟类和鱼类都属于动物类。鸟类不但能吃,还能飞;鱼类不但能吃,还能游。

由上往下可以认为鸟类继承了动物类,因为鸟类和动物类都能吃,但鸟类有自己独有的技能——飞翔

这就是继承,一个类(子类)从它的父类中继承了一些数据/能力下来,除此之外还可以拥有父类没有的特性

比如同事把一些功能封装到了一个类里面,这个类创建出对象后,我们就可以通过这对象来使用它的功能

如果我们想在保留原有功能的前提下,增加一些新的功能,就可以通过继承来做到

多态

  1. 众所周知,喜鹊和布谷鸟都是鸟类,虽然它们的叫声不一样,但是它们都会叫

  2. 尽管所有的动物吃法、吃的食物不尽相同,但我们都知道,动物一定有进食这个行为

同一操作,作用于不同的对象,可以产生不同的结果,这就是多态

Python零基础入门教程 13.面向对象

总结

这节课我们初步了解了面向对象的一些知识

下节课讲Python如何面向对象(找对象)