很多同学对面向对象编程只闻其名,未解其意。或者有部分了解,但一知半解。本文致力于让大家从原理出发,彻底理解面向对象中的类和对象。
一、类与对象的原理
1 类与对象的定义
类(class):用来描述有相同的属性和方法的对象的集合,是对象属性和行为的描述。比如:人、狗、猫等都可以抽象成类。
对象:类的具体实例。
2 类与对象的关系
首先来看下简单类结构的定义:
伪代码如下:
class 类名称:
属性1的定义
属性2的定义
....
属性n的定义
def 方法1(self, [其他参数]):
方法体中的代码
def 方法2(self, [其他参数]):
方法体中的代码
....
def 方法n(self, [其他参数]):
方法体中的代码
总体而言类是对象结构的定义和描述(类是对象的抽象),而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。比如我们可以通过狗的特征来抽象描述狗这个类,但是对于不同的狗,如狗1、狗2、狗3,就是狗这个类中的具体对象。
3 类名称的命名规则
①:只能包含字母、数字、下划线,且不能以数字开头。
②:不能是系统关键字或保留字。
③:类名称首字母通常是大写。
④:类名称中有多个单词时,通常采用驼峰命名法,如StudentClass。
⑤:尽量做到见名知意。
4 属性的定义
属性是类中存储数据的空间,可以是一个简单变量,也可以是一个复杂类型的数据,如列表、字典等。类的属性分为两种,一种是类属性,另一种是实例属性。
类属性:定义在类中,但是在所有方法之外的属性。
实例属性:定义在类的方法中,以“self.变量名”的方式定义的变量。
5 方法的定义
①:方法是类中定义的函数,对数据进行处理。
②:至少有一个形参self(可另取名)。
③:其他方面与普通函数的定义相同。
二、类与对象的实例
1 定义一个狗的类
平常我们见到狗一般有两个眼睛、一个嘴巴、一个口、一条尾巴、四条腿,会吃东西会叫。我们把狗的这些特征抽象成类如下:
class Dog:
eyes = 2
#属性1的定义
nose = 1
#属性2的定义
mouth = 1
#属性3的定义
tail = 1
#属性4的定义
legs = 4
#属性5的定义
def eat(self):
print("最爱啃骨头")
#方法1
def bark(self):
print("汪汪汪")
#方法2
2 使用类定义对象的格式
使用类定义对象的方法一般有如下两种:
① 类名(),比如Dog()。
② 对象名=类名(),比如dog1=Dog()。
3 类中成员的访问
类中成员的访问分为访问属性和访问方法两种。
① 访问属性
方法一:类名.属性名,比如Dog.legs。
方法二:对象名.属性名,比如dog1.legs。
② 访问方法
对象名.方法名(),比如dog1.eat()。
至此,面向对象中的类和对象已全部讲解完毕,感兴趣的同学可以自己到Python中实现一遍。
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
Python人脸识别—我的眼里只有你
Python画好看的星空图(唯美的背景)
【Python】情人节表白烟花(带声音和文字)
用Python中的py2neo库操作neo4j,搭建关联图谱
Python浪漫表白源码合集(爱心、玫瑰花、照片墙、星空下的告白)