类和对象
1 面向对象的思想
面向过程:面向处理,更多的是从计算机角度思考,注重计算每一个步骤,程序更像是一本cpu操作手册。
面向对象:以日常生活的角度思考问题的解决,更接近人的思维方式,让人可以从更高的层面考虑系统的构建
以你请朋友吃饭为例:
面向过程 | 面向对象 |
---|---|
自己买菜 | 和朋友一块到饭店 |
自己摘菜 | 叫服务员点菜 |
自己洗菜 | 和朋友一块吃 |
自己做菜 | |
和朋友一块吃 |
面向对象的优点:
- 面向对象更加适合做应用的开发
- 面向对象可以使你的代码更加优雅和紧凑
- 面向对象开发效率更高
- 面向对象代码复用度更高、可维护性更好
面向对象是一种思维方式,它认为万事万物皆对象,程序是由多个对象协作共同完成功能的,所以以后我们要从面向过程转向面向对象。以面向对象的方式考虑程序的构建。面向对象的核心是:类和对象
问题->面向对象分析(OOA)->发现对象->类->用类实例化对象->对象协作完成功能
2. 类和对象
2.1 类和对象的概念
生活角度
- 类:具有相同特征和行为的对象的集合,是一个概念
- 对象:客观存在的一切事物,是类的实例
类: 汽车 超级英雄 电脑 杯子
对象: 红色的宝马 美国队长 桌上的mac pro 老王的黑色杯子
程序角度
- 类:用户自定义的数据类型,是模板,不占用内存
- 对象:由类定义的变量,占用内存
类:
成员属性(成员变量) 描述对象的静态特征,诸如,名字、身高体重
成员方法 描述对象的动态特征,例如:吃饭、睡觉、打豆豆
2.2 类的定义
#语法:
class 类名:
类体
注意:
- 类定义必须以关键字class
- 类名要符合标识符的规范
- 类名一般用大驼峰风格: 每个单词首字母大写,其它小写 ,例如MyBook YouMoney
- 类体必须缩进
- 在python3中类默认继承object,所以可以这样写 class Dog:,它等价于class Dog(object):
- 一个文件里只放一个类
2.3 成员方法
成员方法其实就是函数,作用域在类内,成员方法的第一个参数必须是self,self代表当前对象,也就是调用这个方法的对象,这个参数由系统传递。
class Dog(object