面向对象/过程编程

本文对比了面向过程编程和面向对象编程,阐述了对象的属性和方法,以及面向对象编程的封装、继承和多态特性。通过ATM和洗衣机的例子,展示了面向对象编程在减少参数、提高代码清晰度方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、面向过程编程

面向过程编程,负责完成某个具体任务的代码,可理解为函数,其核心是把要实现的事情拆分成一个一个步骤依次完成。

比如写ATM程序

ATM有存钱和取钱两个用途。

我们会按照顺序写出存/取钱的步骤,并定义出存钱和取钱的函数,假若我们要知道存/取钱的操作过程中的具体参数,比如哪个ATM执行的,该ATM属于哪个银行,纸币编号,ATM所属支行,纸币发行年份等等。一方面这些数据会增加函数参数的数量,传参过程中混在一起,不利于理解参数的含义;另一方面,代码清晰度也会因此降低。

二、面向对象编程

面向对象编程,以对象为核心,和过程不同的是,它并不聚焦存/取钱的过程,而是先考虑各个对象有什么性质(属性),能做什么事情(方法)。

1.对象的属性

比如写ATM程序

每个ATM都有自己的性质,包括编号、银行、支行,纸币也有自己的性质,包括编号、面值、发行年,我们可以提取出ATM、纸币的性质并定义ATM类和纸币类,用类创建对象,对象作为参数传入存/取钱函数中,也可以说属性是放在类里的变量

面想对象的优点:

1.参数变少

2.用对象把相关属性绑定在一起

3.程序逻辑更加清晰,比如打印记录,面向过程编码需要传递一大堆信息参数 而面向对象编码可以通过对象来获取绑定的属性

2.对象的方法

比如写洗衣机的程序

执行洗衣服的任务,面向过程编码是按顺序写出步骤并定义放衣服、开机、清洗、烘干等函数,一步步执行完成任务的步骤;

面向对象编程是面向人和洗衣机,人和洗衣机都是执行事务的对象,定义出人和洗衣机作为类的方法,也可以说方法就是放在类里的函数

3.面向对象还有三个被反复提及的特性:

1.封装

封装表示写类的人,将内部实现细节隐藏起来,使用类的人只通过外部接口访问和使用,比如现在要用洗衣机洗衣服,我们并不需要知道洗衣机的内部结构和程序如何,只需要通过操作界面按钮完成洗衣服操作,即封装。

2.继承

继承是指面向对象程序允许创建有层次的类,类可以有子类和父类,表示从属关系,比如相同品牌的某些洗衣机内部结构和程序相似,这些具体结构和程序作为父类;而具体的某款洗衣机作为子类,即继承。

3.多态

比如不同品牌洗衣机都能洗衣服,但它们洗衣服的方式不同,不管它们的洗衣服的方式是怎么样的,它们都是通过调用洗衣服的程序设定完成该任务操作,由于每个洗衣机洗衣服方法的所属类不同,执行不同的洗衣服方式,即多态。

内容整理自bilibili@林粒粒呀 python 26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值