- 1. 宽泛的面向对象的概念
- 面向过程
- 面向对象
- 2. Python 中的面向对象
- 类
- 对象
- 属性
- 方法
- 3. Python 中面向对象的三大特征
- 封装
- 继承
- 多态
- 4. 面向对象编程的设计
1. 宽泛的面向对象的概念 面向过程Python 是既属于面向对象又属于面向过程的一门编程语言
从字面就可以看出,面向对象注重的是过程,比如 C、C++,都是经典的面向过程的编程语言。
如果你打过编程竞赛就会知道,编程竞赛像蓝桥杯、ACM、ICPC等,算法题目都是面向过程的,注重你要如何去求解这道算法题目。
面向对象就是说,在处理一件事情的时候,我们要去考虑这件事情的全部,从头到尾,以及中间过程。
比如:
面向对象小明的一天:小明早上吃了饭 - 小明中午吃了饭 - 小明中午睡了觉 - 小明下午敲了代码 - 小明晚上吃了饭 - 小明晚上睡了觉
对象,学过 java 就应该知道,万物皆对象,Python 一样,在 Python 中万物也皆对象
面向对象的编程思想,对于一件事情来说,我们就不需要考虑这件事的中间过程了,仅考虑它的对象就可以了
比如:
小明的一天:小明活了一天
从上面可以看出,面向对象的编程语言雀氏要比面向过程的编程语言简单,这也是 Python 简单的一个方面,大部分程序员认为面向对象的编程更加简单,写起来思路更加清晰。(个人觉得,还是面向过程的编程语言更简单一点…可能是竞赛打多了后遗症)
2. Python 中的面向对象 类类:描述一类事务,一个抽象的概念,比如:人、动物、水果
对象对象:类的具象化表示,比如:张三、李四,猫、狗,苹果、香蕉
属性属性:对象的特征,比如:男的、女的,大猫、小狗,红苹果、绿香蕉
方法方法:对象的功能行为,比如:张三会武术、李四会跳舞,猫会抓老鼠、狗会汪汪叫…
类 - 对象 - 属性
类 - 对象 - 方法
将属性和方法封装到一个抽象的类中
继承外界使用类创建对象,然后让对象调用方法
对象方法的细节都被封装到类的内部
单继承
代码的传递性:孙子类中可以使用爷爷类型的方法(子承父业)
多继承
一个子类可以继承多个父类
子类拥有所有父类的属性和方法
多态方法重写:在子类中书写和父类同名的方法
特点:在类中调用方法,如果在子类中找到,直接执行子类中的方法,如果子类中没有找到这个方法,就去父类中找,找到了就调用父类中的方法,如果父类中没有找到,就报错
一个对象的多种形态(一父多子)
作用:增强代码的灵活性、提高代码的扩展性
条件:继承、方法的重写
4. 面向对象编程的设计封装、继承、多态是 Python 的三大特性
这三大特性在 java 中也有提及,学过 java 就不会这么陌生了
继承体系设计 有什么类 有什么属性 封装到什么方法中去
比如:门 锁 人 ,把开门关门的方法 封装在谁的类之中?
封装在门的类之中,(谁拥有数据谁就拥有操作数据的权利)而人相当于一个main方法
调用时:拿到门对象,调用门的开关门方法



