什么是面向对象编程?3 分钟让你通过小美找男朋友的案例快速理解!

面向对象编程——Object Oriented Programming,简称 OOP,是一种程序设计思想。OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

在 Python 中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。

接下来,我们拿一个通俗易懂的例子来引入这样的概念,让你理解一下,面向对象的编程是怎样的。

比如小美同学需要找一个男朋友,她对于男朋友的标准是会洗衣服,凡是符合会洗衣服这个标准才可以做她的男朋友,于是她定义了一个“男朋友的标准模板”:

# 类的定义
class BoyFriend:
    def wash_clothes(self):
        print("不用管我怎么洗,我就是能把衣服洗干净")

此时她找到了一个叫做“张三”的男朋友,他会洗衣服,于是有如下代码:

# 类的定义
class BoyFriend:
    def wash_clothes(self):
        print("不用管我怎么洗,我就是能把衣服洗干净")
        
# 找了一个名叫张三的男朋友,符合男朋友的标准
# 将类实例化为对象
zhangsan = BoyFriend()
# 调用对象的方法
zhangsan.wash_clothes()

运行一下,会发现正常将不用管我怎么洗,我就是能把衣服洗干净这句话打印了出来。关于代码的格式写法你可以先不用太在意,大概了解这个思想即可。

好的,接下来,小美同学发现男朋友张三在其他方面不太靠谱,于是她甩掉了这个男朋友(张三欲哭无泪)。接下来小美还是要找个男朋友呀,不过小美觉得还是要满足她的原有标准,那就是要会洗衣服。于是找啊找,小美同学找到了新男朋友——李四。我们把代码扩充如下:

# 类的定义
class BoyFriend:
    def wash_clothes(self):
        print("不用管我怎么洗,我就是能把衣服洗干净")
        
# 找了一个名叫张三的男朋友,符合男朋友的标准
# 将类实例化为对象
zhangsan = BoyFriend()
# 调用对象的方法
zhangsan.wash_clothes()

# 找了一个新的男朋友李四,也符合男朋友的标准
# 将类实例化为对象
lisi = BoyFriend()
# 调用对象的方法
lisi.wash_clothes()

我们会发现,李四的代码部分还是打印出了不用管我怎么洗,我就是能把衣服洗干净这句话。于是我们大概理解了,类是某种标准的抽象,你可以理解为一个模板。而对象是一个个具体的个体,将类进行实例化为对象之后,对象都可以调用类的方法。

评论区
头像