你真的知道面向对象与面向过程的区别吗?

简介: 你真的知道面向对象与面向过程的区别吗?

什么是面向对象


      面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。

      举个例子,下五子棋,首先将整个五子棋游戏分为三个对象:

(1)黑白双方,这两方的行为是一样的。

(2)棋盘系统,负责绘制画面

(3)规则系统,负责判定犯规、输赢等。

      可以看出,面向对象是以功能来划分问题,而不是以步骤解决。


面向过程


      面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。

      还是五子棋为例,面向过程的设计思路是首先分析解决这个问题的步骤:

①开始游戏;②黑子先走;③绘制画面;④判断输赢;⑤轮到白子;⑥绘制画面;⑦判断输赢;⑧返回步骤②;⑨输出最后结果,然后将上面每个步骤用程序来实现即可。

可见,面向过程始终关注的是怎么一步一步地判断棋局输赢的,通过控制代码,从而实现函数的顺序执行。


总结


面向对象与面向过程没有好坏之分,都有各自的特点,编程考虑的是适用or不适用。以下是我总结的思维导图:(看完导图先别离开,在查阅资料时遇到了有意思的例子,大家可以欣赏欣赏:通俗易懂地举例说明「面向对象」和「面向过程」有什么区别


目录
相关文章
第一章MCS-51单片机结构,单片机原理、接口及应用
第一章MCS-51单片机结构,单片机原理、接口及应用
第一章MCS-51单片机结构,单片机原理、接口及应用
|
9月前
|
存储 JavaScript 前端开发
详解C语言指针的指针,不信你还不懂!!!
指针的指针(也叫二级指针)是 C 语言中很经典但也让人迷惑的一个知识点。下面我帮你用最详细、最通俗的方式来讲清楚它,保证你看完会豁然开朗!
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
AI概念解析:从入门到精通的43个关键术语指南
本文系统梳理AI领域50个核心术语,涵盖基础概念、技术原理、应用场景与合规风险,帮助读者精准理解AI本质,把握技术演进脉络与产业趋势,提升智能时代认知与决策能力。
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
1484 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
存储 关系型数据库 MySQL
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
1107 1
Matlab 2022a 安装教程 附安装包
Matlab 2022a 安装教程 附安装包
7586 1
Matlab 2022a 安装教程 附安装包
|
Java 缓存 Linux
如何回答性能优化的问题,才能打动阿里面试官?
阿里妹导读:日常工作中,我们多少都会遇到应用的性能问题。在阿里面试中,性能优化也是常被问到的题目,用来考察是否有实际的线上问题处理经验。面对这类问题,阿里工程师齐光给出了详细流程。来阿里面试前,先看看这篇文章哦。
21829 2
如何回答性能优化的问题,才能打动阿里面试官?
|
Java 关系型数据库 MySQL
Spring Boot中集成MySQL数据库的步骤和技巧
Spring Boot中集成MySQL数据库的步骤和技巧
1680 0
|
Java 关系型数据库 MySQL
Spring Boot中集成MySQL数据库的步骤和技巧
Spring Boot中集成MySQL数据库的步骤和技巧