Week 19
14.1 面向对象定义和术语 Object Oriented Definitions and Terminology
- 一个程序由多个互相协作的对象组成
- 每一个对象就像是程序中的一个小岛,与其他对象协作实现功能
- 对象之间互相利用其功能,多个对象共同构成一个实现程序
- 一个对象是一组自给自足的代码和数据
- 对象方法的一个关键特性在于将一个问题分解成多个更小的可以理解的部分(分治)
- 对象存在边界,帮助我们忽略不必要的细节(从外到里,忽略内部细节;从里到外,忽视外部细节)
- 一些术语:
- 类:一个模板
- 方法/消息:对一个类别定义的能力
- 域/属性:类中的一组数据
- 对象/实例:类的一个特定实例
14.2 我们的第一个类和对象 Our First Class and Object
- 使用关键字
class
定义一个类 - 在类定义中,可以包含数据域和方法函数
- 使用类名加构造函数参数实现对类的实例化
- 调用方法和其他OO语言语法一致
- 每个类别方法函数中涉及到的
self
指对于调用当前方法的实例 - 使用
self.FIELDNAME
调用对象内部的数据域
14.3 对象生命周期 Object Life Cycle
- 基本周期:创建,使用和丢弃
- 在不同的阶段由特定的代码用于调用
- 创建时,称为构造器,经常被使用
- 销毁时,称为析构器,很少被用到
- 构造器
- 基本目的:在类实例创建时,对其一些实例变量设置一些合适的初始值
- python中,构造器为
__init__(self)
- 析构器:
- 基本目的:在类实例被丢弃(零引用时)并销毁时,执行的一系列动作
- python中,析构器为
__del__(self)
- 对于同一个类的多个实例对象,其可以拥有不同的实例变量,只是其构造的模板都来自于这个类的定义
14.4 对象继承 Object Inheritance
- 一种定义新模版的方式:重用既有的模板,继承其所有的能力,定义新的类
- 继承:
- 子类是一类特定类型的类
- 从父类中继承属性和行为
- 同时引入自己的内容
- 定义子类时,在子类名称后面指明父类:
SubClass(FatherClass)