面向对象
面向对象
是一种计算机编程架构 ,学习面向对象则要深刻了解其中的奥秘, 学习面向对象则要有面向对象的思 想,万物皆对象 , 具体而言在打代码中 ,对于一个对象则首先考虑的是类 ,有类才有对象 ,类是一 个抽象的东西 在代码中不能直接使用 ,特征 被称为 属性 2、行为 被称为 方法
简单而言就是
类 就相当于制造飞机时的图纸,是一个 模板,是 负责创建对象的
知识点①:
在程序开发中,应该 先有类,再有对象
类 只有一个,而 对象 可以有很多个(不同的对象 之间 属性 可能会各不相同) 类 中定义了什么 属性和方法,对象 中就有什么属性和方法,不可能多,也不可能少
知识点②:
初始化代码时遵守
大托峰命名法
每一个单词的首字母大写
单词与单词之间没有下划线
知识点③:
写代码就要有代码的语法 面向对象也不例外
如:
__new__ 方法创建对象时,会被 自动 调用
__init__ 方法对象被初始化时,会被 自动 调用
__del__ 方法对象被从内存中销毁前,会被 自动 调用
__str__ 方法返回对象的描述信息,print 函数输出使用
知识点④:
封装
封装是面向对象编程的一大特点
面向对象编程的第一步——将属性和方法 封装到一个抽象的类中
外界使用类创建对象,然后让对象调用方法
对象方法的细节都被封装在类的内部
知识点⑤:
私有属性
含义:
在实际开发中,对象的某些属性或方法可能只希望在对象的内部被使用,而不希望在外部被访问到
私有属性就是对象不希望公开的属性
私有方法就是对象不希望公开的方法
切记
在 定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法
知识点⑥:
继承的含义:
继承的概念:子类 拥有 父类 的所有 方法 和 属性
继承的语法 :
class 类名(父类名):
pass
重写:
子类拥有父类的所有方法和属性
子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发
知识点⑦:
多态
多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果多态 可以 增加代码的 灵活度
以 继承 和 重写父类方法 为前提
是调用方法的技巧,不会影响到类的内部设计
知识点⑧:
类属性和类方法:
创建出来的 对象 叫做 类 的 实例
创建对象的 动作 叫做 实例化
对象的属性 叫做 实例属性
对象调用的方法 叫做 实例方法
知识点⑨:
单例
目的——让类创建的对象,在系统中只有唯一的一个实例
每一次执行类名()返回的对象,内存地址是相同的
__new__是一个由object基类提供的内置的静态方法,主要作用有两个:
1)在内存中为对象分配空间
2)返回对象的引用
重写 __new__ 方法 的代码非常固定!
重写 __new__ 方法 一定要 return super().__new__(cls)
否则 Python 的解释器 得不到 分配了空间的 对象引用,就不会调用对象的初始化方法