欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python] 面向对象编程面向对象编程 - 全面了解类和对象

最编程 2024-05-26 17:15:39
...

很多同学对面向对象编程只闻其名,未解其意。或者有部分了解,但一知半解。

本文致力于让大家从原理出发,彻底理解面向对象中的类和对象。

一、类与对象的原理

1 类与对象的定义

类(class):用来描述有相同的属性和方法的对象的集合,是对象属性和行为的描述。比如:人、狗、猫等都可以抽象成类。

对象:类的具体实例。

2 类与对象的关系

首先来看下简单类结构的定义:

伪代码如下:

代码语言:javascript
复制
class 类名称:    属性1的定义    属性2的定义    ....    属性n的定义    def 方法1(self, [其他参数]):        方法体中的代码    def 方法2(self, [其他参数]):        方法体中的代码        ....    def 方法n(self, [其他参数]):        方法体中的代码     

总体而言类是对象结构的定义和描述(类是对象的抽象),而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。

比如我们可以通过狗的特征来抽象描述狗这个类,但是对于不同的狗,如狗1、狗2、狗3,就是狗这个类中的具体对象。

3 类名称的命名规则

  • ①:只能包含字母、数字、下划线,且不能以数字开头。
  • ②:不能是系统关键字或保留字。
  • ③:类名称首字母通常是大写。
  • ④:类名称中有多个单词时,通常采用驼峰命名法,如StudentDormitory。
  • ⑤:尽量做到见名知意。

4 属性的定义

属性是类中存储数据的空间,可以是一个简单变量,也可以是一个复杂类型的数据,如列表、字典等。

类的属性分为两种,一种是类属性,另一种是实例属性。

类属性:定义在类中,但是在所有方法之外的属性。

实例属性:定义在类的方法中,以“self.变量名”的方式定义的变量。

5 方法的定义

  • ①:方法是类中定义的函数,对数据进行处理。
  • ②:至少有一个形参self(可另取名)。
  • ③:其他方面与普通函数的定义相同。

二、类与对象的实例

1 定义一个狗的类

平常我们见到狗一般有两个眼睛、一个嘴巴、一个口、一条尾巴、四条腿,会吃东西会叫。

我们把狗的这些特征抽象成类如下:

代码语言:javascript
复制
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中实现一遍