Python零基础入门教程 13.面向对象
面向对象
大纲
视频地址:https://www.bilibili.com/video/BV1ZT4y1j7d1?p=14
前言
Python是一门面向对象的编程语言,但这并不是说我们学Python这门语言就一定能找到对象(男/女朋友)的意思
面向对象(Object Oriented Programming),简称OOP,它是一种程序设计思想(方法)
利用面向对象思想,能够使我们的代码更易于扩展、维护,所以能够极大地提高开发效率
面向过程与面向对象
面向过程(Procedure Oriented Programming),简称POP,同样也是一种程序设计思想,但是它是一种以过程为中心的编程思想
编程思想 | 描述 |
---|---|
面向过程 | 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 |
面向对象 | 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为 |
下面通过两个例子来,加深两种编程思想的理解
比如某天你接到一个任务,要求开发一个程序,那么我们可以把任务拆分成大致以下步骤:
- 需求分析(是啥程序)
- 确定架构与技术栈(要怎么做)
- 测试(能用么)
- 交接(能用!)
这就是面向过程,分析出解决问题的步骤,然后一步一步的来
老板:"小许,7天时间开发出个淘宝来,时间应该没问题吧?"
老板:"小李,5天时间开发出个百度来,时间应该没问题吧?"
老板:"小吴,3天时间开发出个微信来,时间应该没问题吧?"
老板并不管这三个程序要怎么开发,只需要管这三位苦逼程序员能不能把这三个任务完成
这就是面向对象思想,专注于某个功能,它站在更高的地方思考问题
所以我们要做老板还是员工?
面向对象的三大特性
下面用这张图来理解面向对象的三大特性
抽象
很久很久以前,我们的祖先发现鸟、鱼等它们都会吃东西,所以以此把它们归类成动物,抽象成所有的动物都会吃东西
抽象也叫封装,我们把数据和能力组合成一个对象的过程就叫做封装
比如所有的动物都有大小(数据),都可以吃东西(能力)
动物是一个类,那么具体的某个动物,比如猴子、鲤鱼,它们就是对象,我们可以知道它们的大小,也可以喂它们吃东西
封装只是面向对象的第一步,目的是把现实世界的东西抽象成对象
面向对象真正有威力的地方是继承和多态
继承
鸟类和鱼类都属于动物类。鸟类不但能吃,还能飞;鱼类不但能吃,还能游。
由上往下可以认为鸟类继承了动物类,因为鸟类和动物类都能吃,但鸟类有自己独有的技能——飞翔
这就是继承,一个类(子类)从它的父类中继承了一些数据/能力下来,除此之外还可以拥有父类没有的特性
比如同事把一些功能封装到了一个类里面,这个类创建出对象后,我们就可以通过这对象来使用它的功能
如果我们想在保留原有功能的前提下,增加一些新的功能,就可以通过继承来做到
多态
-
众所周知,喜鹊和布谷鸟都是鸟类,虽然它们的叫声不一样,但是它们都会叫
-
尽管所有的动物吃法、吃的食物不尽相同,但我们都知道,动物一定有进食这个行为
同一操作,作用于不同的对象,可以产生不同的结果,这就是多态
总结
这节课我们初步了解了面向对象的一些知识
下节课讲Python如何面向对象(找对象)