面向对象基础
什么是面向对象
面向对象指的是一门编程思想
面向过程编程
核心是“过程”二字,过程指的是做事情的步骤,即先做什么再做什么 基于该编程思想编写程序,就好比一条工厂流水线,一种机械式的思维方式。 优点: 逻辑清晰,复杂的问题流程化,进而简单化。
缺点: 可扩展性差。
面向对象编程
核心是“对象”二字,对象指的是特征与技能的结合体。基于该编程思想编写程序,就好比在创造世界,一种上帝式的思维方式。
优点: 可扩展性高。
缺点: 编写程序的复杂程度要远高于面向过程编程思想。
面向过程和面向对象的优先级使用
面向过程结合面向对象一起使用
什么是类
类型,类别,分类
先定义类,后调用类产生对象
现实世界中
对象是一个个具体存在的食物,类是由人类文明的发展抽象总结出来的
程序中
必须遵循,现有类,再有对象
定义类
- 先从现实世界钟,基于一个个的对象,抽取出类
- 再定义类
类:对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体
在定义类发生的事情:
-
类在定义时,会产生一个空的名称空间。
-
会把类内部所有名字,扔进类的名称空间中。
注意: 类在定义阶段就已经产生好了名称空间,执行python文件时会执行类内部的代码。
调用类发生的事情(******
):
-
首先会产生一个空的对象,就是产生“对象的名称空间”。
-
会自动触发
__init__
。 -
会把对象本身以及括号内的参数一并传给__init__函数。
总结: 调用类会产生一个对象,调用类的过程叫做类的实例化,产生的对象称之为类的一个实例.
__init__
:
会在调用类时,自动触发该函数。
- 类调用类内部的函数,只是调用普通函数.
- 对象的绑定方法特殊之处(
******
):- 由对象来调用的,会把对象当作第一个参数传入该方法中
- 由不同的对象来调用,就会把不同的对象传给不同的绑定方法.
选课系统项目:
- 在现实世界中:
学生对象1:
特征:
school = 'oldboy' #学校
name = '高峰峰' #姓名
age = 93 #年龄
sex = 'female' #性别
技能
learn 学习
choose_course 选课
学生对象2:
特征:
school = 'oldboy'
name = '小丁丁'
age = 84
sex = 'female'
技能
learn
choose_course
学生对象3:
特征:
school = 'oldboy'
name = '大丁丁'
age = 18
sex = 'male'
技能
learn
choose_course
类:
相同的特征:
school = 'oldboy'
相同的技能:
learn
choose_course