主要内容 #
1. “类”的概念 #
“类”是一个抽象的概念,比如,我们可以这样来定义“类”:
将“人”定义为一个“类”
将“动物”定义为一个“类”
将“植物”定义为一个“类”
将“基础学科”定义为一个“类”
将“编程语言”定义为一个“类”
……
所以,“类”可以理解为是具有某些相同属性的一个集合。
2. “对象”的概念 #
在Python中,一切皆对象。
“对象”,在编程中用来表示某个“类”当中的一个实体。
比如,我们可以这样来定义“对象”:
“男生”可以定义为“人”这一类的一个实体。(当然,“男生”也可以定义为一个“类”)
“女生”可以定义为“人”这一类的一个实体。(当然,“女生”也可以定义为一个“类”)
“猫”可以定义为“动物”这一类的一个实体。(当然,“猫”也可以定义为一个“类”)
“花”可以定义为“植物”这一类的一个实体。(当然,“花”也可以定义为一个“类”)
“数学”可以定义为“基础学科”这一类的一个实体。(当然,“数学”也可以定义为一个“类”)
“Python”可以定义为“编程语言”这一类的一个实体。(当然,“Python”也可以定义为一个“类”)
……
所以,“对象”可以理解为具有某些相同属性的一个集合中的一个元素。
3. “面向对象编程”的概念 #
面向对象编程,是一种封装的思想,它可以更好地模拟真实世界里的事物(将其视为对象)。
并把描述特征的数据和代码块(函数)封装到一起。
比如说,可以先创建一个“人类”的概念,然后在这个概念当中再创建具体的某一个人(即一个对象),
或者多个不同的人(即多个对象)。
最后再定义某个人可以做什么事(即这个人可以实现什么样的功能)。
4. “面向对象”的常用术语 #
- 类:可以理解是一个模板,通过它可以创建出无数个具体实例。(比如“人类”)
- 对象:类并不能直接使用,通过类创建出的实例(又称对象)才能使用。(比如具体的“某个人”)
- 属性:类中的所有变量称为属性。(比如人的大脑,四肢,五官等等)
- 方法:类中的所有函数通常称为方法。(比如大脑有思考的功能,眼睛可以观看世界等等)
- 常用名称:class,init,self,object等在后续的章节中会解释说明。
- 三大特性:封装,继承,多态这三大特性也会在后续的章节中解释说明。
5. 面向对象的实现 #
面向对象是通过定义类(关键字:class)来定义,类是具有相同特征的一类事物
如下是class的定义框架
class ClassName:
def __init__(self): # 构造方法
self.instance_var = "" # 实例变量
class_var = "" # 类变量,即属性
def func(self): #类函数,即方法
'''
实现功能的代码块
'''
举个例子,若在某游戏中设计一个乌龟(turtle)的角色。
使用面向对象的思想会更简单,可以分为如下两个方面进行描述:
1. 从乌龟的表面特征(属性)来描述,例如,绿色的、有 4 条腿、重 10 kg、有外壳,等等
2. 从所具有的的行为(方法)来描述,例如,它会爬、会吃东西、会睡觉、会将头和四肢缩到壳里,等等
代码描述如下:
'''
将乌龟用代码来表示,
乌龟的表面特征(属性)可以用变量来表示
乌龟的行为特征(方法)可以用函数来表示
'''
class turtle: # 定义一个turtle类
#定义属性
bodyColor = "绿色" #颜色是绿色
footNum = 4 #有4条腿
weight = 10 #重 10 kg
hasShell = True #有外壳
#定义方法
#会爬
def crawl(self):
print("爬行")
#会吃东西
def eat(self):
print("吃东西")
#会睡觉
def sleep(self):
print("睡觉")
#会缩到壳里
def protect(self):
print("缩进了壳里")
'''
注意:以上代码仅是为了演示面向对象的编程思想,具体细节后续会做详细介绍。
'''
6. 小结 #
- “类”可以理解为是具有某些相同属性的一个集合
- “对象”可以理解为具有某些相同属性的一个集合中的一个元素
- 面向对象编程,是一种封装的思想,它可以更好地模拟真实世界里的事物(将其视为对象)
- 面向对象常用术语有:类,对象,属性,方法
习题 #
- 无