思想
以模块化思想解决工程问题
面向过程 vs 面向对象
由面向过程转向对象
例子,开培训学校,主要讲幼儿编程
面向对象:讲师 ;学生;班主任;教室等
常用名词
00:面对对象
ooa:分析
ood:设计
oop:编程
ool:实现
ooa -> ood -> ooi
类 vs 对象
类:抽象,描述的是一个集合,侧重于共性
对象:具象,描述的是个体
类的内容:
动作,函数
属性,变量
定义类:class关键字
类命名:
遵循大驼峰
第一个字母大写
self
**self可以用其他的名称代替
self不是关键字
作用是指代本身
类的变量作用域的问题
类变量:属于类自己的变量
实例变量:属于实例的变量
访问实例的属性,如果没有实例没有定义属性,则自动访问类的属性,如果类也没有定义的化,将报错
就近原则
访问类的属性
在类里面如果强制访问类的属性,则需要使用__class__,(注意前后都是两下划线)
类方法:1,定义类的方法·的时候,没有self参数
2,类的方法中只运训使用类的内容
两种用法
ClassName
class
构造函数
类在实例化的时候,执行一些基础性的初始化工作
使用特殊的名称和写法
在实例化的时候自动执行
通俗意义上,是在实例化的时候第一个被执行的函数
在函数实例化的时候调用的一个函数
自动调用
要求,第一个参数必须有,一般推荐self
构造函数的调用时间:一般认为在实例化的时候第一个被调用
一般不手动调用,实例化的时候自动调用,参数写入类名称后面的括号中
面向对象的三大特征
继承
封装
多态
继承
子类可以使用父类定义的内容或者行为等
继承的实现
父类,基类,超类:被继承的类,Base Class,Super Class
子类:有继承行为的类
所有类都必须有一个父类
如果没有,则默认为是object的子类
子类可以有多个父类
issubclass检测是否是子类
可以用来检测俩个类的父子关系
构造函数的继承
构造函数默认继承
一旦子类定义了构造函数,则不再自动调用父类构造函数