Python面向对象
基本理论
什么是对象?
-
万物皆对象
-
对象是具体物体
拥有属性+拥有行为+把很多零散的东西, 封装成为一个整体
-
举例:
-
王二小
-
属性
姓名+年龄+身高+体重…
-
行为
走路+吃饭+放羊…
-
-
-
Python中的体现
-
Python是一门特别彻底的面向对象编程(OOP)的语言
-
其他语言
-
基本数据类型: int–0, float–0.1, bool–True…
-
对象类型: String–“xxx” Array–[1, 2, 3] …
-
-
Python
- 对象类型:int–0, float–0.1, bool–True, list–[1,2,3]…
- 以上都属于对象
-
-
面向过程&面向对象
-
都是一种解决问题的思路(思想)
-
面向过程:在解决问题的时候,关注的是解决问题的每一个的过程(步骤)。
-
面向对象:在解决问题的时候,关注的是解决问题所需要的对象。
-
举栗:做好饭之后洗碗
-
面向过程
-
你
- 洗菜
- 点火倒油
- 放菜,材料
- 翻炒
- 盛出
- 放水
- 放碗
- 倒洗洁精
- 开始刷
- 擦干水
- 摆放好
-
-
面向对象:关注解决问题需要的对象,这件事可以分配给谁来做。
-
你
-
对象(隶属于对象的技能,调动对象)
-
技能1: 做饭
- 洗菜
- 点火倒油
- 放菜,材料
- 翻炒
- 盛出
-
技能2:洗碗
- 放水
- 放碗
- 倒洗洁精
- 开始刷
- 擦干水
- 摆放好
-
-
-
你
-
对象
-
技能1: 做饭
-
放菜,材料
-
自动炒菜机(也是一个对象)
- 搅拌
- 翻炒
- 监测火候
-
盛出
-
-
技能2:洗碗
-
放水/放碗
-
自动洗碗机(也是一个对象)
- 倒洗洁精
- 开始刷
- 擦干水
-
摆放好
-
-
-
-
-
-
对比
-
面向对象和面向过程都是解决问题的一种方式(思想)。
面向对象本身是对面向过程的封装.
封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互。
-
面向过程编程最重要的是什么?
-
按照步骤划分
-
把一个任务,分解成具体的每一个步骤
-
-
面向对象编程最重要的什么?
-
按照功对象能进行划分
-
找到对象, 确定对象属性和行为
-
-
如何从面向过程编程的思想,过渡到面向对象编程?
- 列举出一个任务的具体实现步骤
- 试图分离这些实现步骤中的功能代码块
- 将这些功能代码块,划分到某一个对象中
- 根据这个对象以及对应的行为,抽象出对应的类(设计类)
-
类
-
类:某一个具体对象特征的抽象
-
例如:
-
张三这个具体的人
-
属性
年龄:18 身高:180 体重:250…
-
行为
吃:吧唧嘴 喝:放白糖 嫖:不给钱 赌:没赢过…
-
-
抽象出来的类
-
不良青年
-
属性(仅是一个概念,不是具化的某一个数值)
年龄 身高 体重…
-
行为
吃 喝 嫖 赌…
-
-
-
-
-
类的作用?
-
根据抽象的类,生产具体的对象
-
例如
-
类
-
不良青年
-
属性:年龄 身高 体重…
-
行为:吃 喝 嫖 赌…
-
-
-
对象
-
张三
- 不同的身高,体重等属性
- 不同的行为
-
李四
- 不同的身高,体重等属性
- 不同的行为
-
王五
- 不同的身高,体重等属性
- 不同的行为
-
-
-
-
类的组成
- 名称
- 属性
- 方法
一定要注意:
-
以上属性和方法,都是抽象的概念
-
在产生对象之后,对象才拥有具体的属性值,和方法实现
-
列举生活中的类
-
类:钱
对象:具体的1毛的,5毛的,1块的,5块的…
-
类:熊
对象:熊大,熊二…
-
类:汽车
对象:奥拓, 奥迪, 马自达 …
-
-
对象和类的关系
-对象 - 抽象 - 类 - 实例化 - 对象
类可以实例化某一个对象;根据对象可以抽象出某一个类。
参考视频:https://www.bilibili.com/video/BV1A4411v7b2?p=5&spm_id_from=pageDriver