我所理解的面向过程与面向对象

本文探讨了面向过程与面向对象两种编程思想的区别,并通过实例解释了它们如何影响解决问题的方法。文章强调编程思想并无优劣之分,选择哪种思想取决于问题的具体情况。

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

我所理解的面向过程与面向对象

在大学的计算机系中,最常被拿出来讨论的一个问题,也是大学生上Java语言基础课所要面对的第一个问题,就是面向过程与面向对象的区别。但这些关于这两种思想的讨论往往最后会演变成C与Java区别的讨论或者C与C++区别的讨论。

在程序里,面向过程是通过一个个函数之间的相互调用完成的,面向对象是利用编程语言提供的类、接口、继承、封装、多态等特性体现的。所以人们总是把面向过程与C语言联系起来,把面向对象与Java等语言联系起来。

诚然,C语言的特性导致了它更适合面向过程编程,而Java或者C++的特性导致了它们更适合面向对象编程。然而这些并不是这两种编程思想的真正区别。用C语言照样可以实现面向对象,用Java或者C++照样可以面向过程编程,语言往往不是这类问题的关键。

面向过程和面向对象,是两种不同的编程思想。既然是思想,那么它就影响了人们解决问题的思考方式。假如我想吃个汉堡。面向过程就是烤面包片->烤肉->涂酱料->切菜->拼装等一系列动作,每次想吃汉堡我都会这么做,因为汉堡的制造过程就是如此。而使用面向对象,我会在想吃汉堡的时候直接去找一家肯德基。

面向过程意味着解决问题的时候先将问题分解为过程,再通过完成一个个过程达到最终的目标,它直观,非常符合人们正常的思考方式。而面向对象则需要先对问题进行抽象,得到问题的抽象结构,再通过对象之间的相互作用解决问题。

很多人往往还有另一种错误的想法:面向对象优于面向过程。这又是编程语言惹的祸!那些被C语言坑惨了的学生,习惯性地把Java程序更好写归功于面向对象而不是GC。我的态度是:编程思想并没有优劣之分。选用什么思想构建程序,往往取决于问题的复杂程度、抽象程度、程序的规模和运行时间。

面向过程更适合那些简单的问题。面向对象则适合抽象程度更高的问题。假如只是临时地想计算一下某个公式,没必要专门抽象出一个公式类。想构建一个web页面,则没必要控制整个程序运行的每一步…

有趣的是,有时候这两种思想是同时存在于同一个程序中的

最后需要说明的一点是:编程思想跟编程语言一样,只是一个工具,只是为了更好地编写优质、易读、易维护、低耦合度的代码。如果被思想缚住了手脚,那就得不偿失了。

内容概要:本文介绍了奕斯伟科技集团基于RISC-V架构开发的EAM2011芯片及其应用研究。EAM2011是一款高性能实时控制芯片,支持160MHz主频和AI算法,符合汽车电子AEC-Q100 Grade 2和ASIL-B安全标准。文章详细描述了芯片的关键特性、配套软件开发套件(SDK)和集成开发环境(IDE),以及基于该芯片的ESWINEBP3901开发板的硬件资源和接口配置。文中提供了详细的代码示例,涵盖时钟配置、GPIO控制、ADC采样、CAN通信、PWM输出及RTOS任务创建等功能实现。此外,还介绍了硬件申领流程、技术资料获取渠道及开发建议,帮助开发者高效启动基于EAM2011芯片的开发工作。 适合人群:具备嵌入式系统开发经验的研发人员,特别是对RISC-V架构感兴趣的工程师和技术爱好者。 使用场景及目标:①了解EAM2011芯片的特性和应用场景,如智能汽车、智能家居和工业控制;②掌握基于EAM2011芯片的开发板和芯片的硬件资源和接口配置;③学习如何实现基本的外设驱动,如GPIO、ADC、CAN、PWM等;④通过RTOS任务创建示例,理解多任务处理和实时系统的实现。 其他说明:开发者可以根据实际需求扩展这些基础功能。建议优先掌握《EAM2011参考手册》中的关键外设寄存器配置方法,这对底层驱动开发至关重要。同时,注意硬件申领的时效性和替代方案,确保开发工作的顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值