文章目录
1、面向对象基本概念
1.1 万物皆对象
Python
语言的中所有数据类型都是对象、函数是对象、模块是对象Python
所有类都是继承最基础的类object
Python
语言中的数据类型的操作功能都是类方法的体现
1.2 面向对象编程
面向对象编程又叫OOP
(Object-Oriented-Programming)
OOP:面向对象编程,一种编程思想,重点在于高抽象的复用代码
OOP
把对象当做程序的基本单元,对象包含数据和操作数据的函数OOP
本质是把问题解决抽象为以对象为中心的计算机程序OOP
在较大规模或复杂项目中十分有用,OOP可以提高协作产量OOP
最主要的价值在于代码复用OOP
仅仅是一个编程方式,并非解决问题的高级方法
面向过程与面向对象的区别
面向过程以解决问题的过程步骤为核心编写程序的方式,面向对象以问题对象构建和应用为核心编写程序的方式,所有能用OOP
解决的问题,面向过程都能解决。
1.3 面向对象的特征
**封装(Encapsulation
) :**属性和方法的抽象,用数据和操作数据的方法来形成对象逻辑
方法的抽象:对类的属性(变量)进行定义、隔离和保护
- **对象的抽象:**对类的方法(函数)进行定义、隔离和保护
- 目标是形成一个类对外可操作属性和方法的接口
**继承:**代码复用的高级抽象,用对象之间的继承关系来形成代码复用
继承是面向对象程序设计的精髓之一
- 实现了以类为单位的高抽象级别的代码复用
- 继承是新定义类能够几乎完全使用原有类属性与方法的过程
**多态:**方法灵活性的抽象,让对象的操作更加灵活、更多复用代码
参数类型的多态:一个方法能够处理多个类型的能力
- **参数形式的多态:**一个方法能够接受多个参数的能力
- 多态是
OOP
的一个传统概念,Python
天然支持多态,不需要特殊语法
2、Python面向对象的术语
类(Class
)和对象(Object
)
- **类:**逻辑抽象和产生对象的模板,一组变量和函数的特定编排
- **对象:**具体表达数据及操作的实体,相当于程序中的“变量”。包括:类对象、实例对象
类定义完成后,默认生成一个类对象,每个类唯一对应一个类对象,用于存储这个累的基本信息 类对象是type的实例,表达为type
类型;
- 实例对象(
Instance Object
):Python
类实例后产生的对象,简称:对象 - 类对象全局只有一个,实例对象可以生成多个
**属性:**存储数据的“变量”(就是定义在类中的变量),用来描述类的一些特性参数。包括:类属性、实例属性
- **类属性(
Class Attribute
):**类对象的属性,由所有实例对象共享;类内定义,在__init__函数外面。一般是类所共有的属性定义为类属性。 - **实例属性(
Instance Attribute
):**实例对象的属性,一般在类中的函数中定义,实例属性可能为某个实例独有。
**方法:**操作数据的“方法”(就是定义在类中的变量),用来给出类的操作功能。包括:类方法、实例方法、自由方法、静态方法、保留方法
- **类方法(
Class Method
):**类对象的方法,由所有实例对象共享 - **实例方法(
Instance Method
):**实例对象的方法,由各实例对象独享,最常用的形式、 - **自由方法(
Namespace Method
):**类中的一个普通函数,由类所在命名空间管理,类对象独享 - **静态方法(
Static Method
):**类中的一个普通函数&#