很多同学对面向对象编程只闻其名,未解其意。或者有部分了解,但一知半解。
本文致力于让大家从原理出发,彻底理解面向对象中的类和对象。
一、类与对象的原理
1 类与对象的定义
类(class):用来描述有相同的属性和方法的对象的集合,是对象属性和行为的描述。比如:人、狗、猫等都可以抽象成类。
对象:类的具体实例。
2 类与对象的关系
首先来看下简单类结构的定义:
伪代码如下:
class 类名称: 属性1的定义 属性2的定义 .... 属性n的定义 def 方法1(self, [其他参数]): 方法体中的代码 def 方法2(self, [其他参数]): 方法体中的代码 .... def 方法n(self, [其他参数]): 方法体中的代码
总体而言类是对象结构的定义和描述(类是对象的抽象),而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。
比如我们可以通过狗的特征来抽象描述狗这个类,但是对于不同的狗,如狗1、狗2、狗3,就是狗这个类中的具体对象。
3 类名称的命名规则
4 属性的定义
属性是类中存储数据的空间,可以是一个简单变量,也可以是一个复杂类型的数据,如列表、字典等。
类的属性分为两种,一种是类属性,另一种是实例属性。
类属性:定义在类中,但是在所有方法之外的属性。
实例属性:定义在类的方法中,以“self.变量名”的方式定义的变量。
5 方法的定义
二、类与对象的实例
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 使用类定义对象的格式
使用类定义对象的方法一般有如下两种:
3 类中成员的访问
类中成员的访问分为访问属性和访问方法两种。
至此,面向对象中的类和对象已全部讲解完毕,感兴趣的同学可以自己到Python中实现一遍