尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

https://img2024.cnblogs.com/blog/3001825/202510/3001825-20251020014716729-439844091.png

https://img2024.cnblogs.com/blog/3001825/202510/3001825-20251020014716729-439844091.png
📅 发布时间:2026/6/19 21:15:42

用一个简单的比喻来帮助你理解:“如何完成一顿饭?”
1. 面向过程 (Procedural Oriented)
核心思想:关注“步骤”和“流程”。
这就像你拿到一份菜谱。你必须严格按照步骤来执行:

第一步:洗菜。

第二步:切菜(把土豆切成丝)。

第三步:开火、倒油。

第四步:放花椒、炒香。

第五步:放入土豆丝、翻炒...

...

最后一步:装盘。

特点:

以“函数”为中心: 整个程序就是由一个个的“函数”(function)组成的,就像菜谱里的一个个“步骤”。

数据和操作分离: “土豆”(数据)和“切菜”这个动作(函数)是分开的。你得自己调用 qieCai(tudou) (切菜) 这个函数,作用于“土豆”这个数据上。

思维方式: “我该如何一步一步地解决这个问题?”

C语言就是典型的面向过程语言。你定义各种变量(数据),然后编写各种函数来处理这些变量。程序的执行就是函数A调用函数B,函数B再调用函数C...

2. 面向对象 (Object Oriented)

核心思想:关注“谁”来做“什么事”。

这就像你开了一家餐厅。你不需要关心做饭的每一步,你只需要“指挥”不同的对象来完成他们的工作。

厨房里有:

一个“厨师”对象

一个“切菜工”对象

一个“服务员”对象

当一个“顾客”对象(他有“点菜”的方法)点了一份土豆丝时:

你(经理)对“服务员”对象说:fuwuyuan.jiedan(tudousi) (服务员去接单)。

“服务员”对象对“厨师”对象说:chushi.zuocai(tudousi) (厨师去做菜)。

“厨师”对象发现需要切菜,于是对“切菜工”对象说:qiecaigong.qiecai(tudou) (切菜工去切菜)。

特点:

以“对象”为中心: 整个程序是由一个个“对象”(object)组成的。

数据和操作绑定(封装): “厨师”这个对象,他自己拥有“厨艺”这个技能(方法/函数),也拥有“厨师等级”这个信息(数据/属性)。它们被“封装”在一起。你不需要知道厨师的刀法细节,你只需要告诉他“去做菜”,他自己就知道该怎么做。

思维方式: “我需要哪些对象?每个对象有什么功能和信息?它们之间如何协作?”

C++ 和 Java 就是典型的面向对象语言。你不再是写一步步的指令,而是先去“设计”和“定义”这些“对象”(在代码里叫 类 (Class)),比如设计一个 ChuShi (厨师) 类,定义他有什么属性(如:name, level)和什么方法(如:zuoFai(), yanfaXinCai())。
这是一个非常核心且重要的问题!

用一个简单的比喻来帮助你理解:“如何完成一顿饭?”

  1. 面向过程 (Procedural Oriented)
    核心思想:关注“步骤”和“流程”。

这就像你拿到一份菜谱。你必须严格按照步骤来执行:

第一步:洗菜。

第二步:切菜(把土豆切成丝)。

第三步:开火、倒油。

第四步:放花椒、炒香。

第五步:放入土豆丝、翻炒...

...

最后一步:装盘。

特点:

以“函数”为中心: 整个程序就是由一个个的“函数”(function)组成的,就像菜谱里的一个个“步骤”。

数据和操作分离: “土豆”(数据)和“切菜”这个动作(函数)是分开的。你得自己调用 qieCai(tudou) (切菜) 这个函数,作用于“土豆”这个数据上。

思维方式: “我该如何一步一步地解决这个问题?”

C语言就是典型的面向过程语言。你定义各种变量(数据),然后编写各种函数来处理这些变量。程序的执行就是函数A调用函数B,函数B再调用函数C...

  1. 面向对象 (Object Oriented)
    核心思想:关注“谁”来做“什么事”。

这就像你开了一家餐厅。你不需要关心做饭的每一步,你只需要“指挥”不同的对象来完成他们的工作。

厨房里有:

一个“厨师”对象

一个“切菜工”对象

一个“服务员”对象

当一个“顾客”对象(他有“点菜”的方法)点了一份土豆丝时:

你(经理)对“服务员”对象说:fuwuyuan.jiedan(tudousi) (服务员去接单)。

“服务员”对象对“厨师”对象说:chushi.zuocai(tudousi) (厨师去做菜)。

“厨师”对象发现需要切菜,于是对“切菜工”对象说:qiecaigong.qiecai(tudou) (切菜工去切菜)。

特点:

以“对象”为中心: 整个程序是由一个个“对象”(object)组成的。

数据和操作绑定(封装): “厨师”这个对象,他自己拥有“厨艺”这个技能(方法/函数),也拥有“厨师等级”这个信息(数据/属性)。它们被“封装”在一起。你不需要知道厨师的刀法细节,你只需要告诉他“去做菜”,他自己就知道该怎么做。

思维方式: “我需要哪些对象?每个对象有什么功能和信息?它们之间如何协作?”

C++ 和 Java 就是典型的面向对象语言。你不再是写一步步的指令,而是先去“设计”和“定义”这些“对象”(在代码里叫 类 (Class)),比如设计一个 ChuShi (厨师) 类,定义他有什么属性(如:name, level)和什么方法(如:zuoFai(), yanfaXinCai())。

总结对比
image
为什么会出现面向对象?
随着软件变得越来越复杂(比如从做一个简单的计算器,到做一个复杂的Windows操作系统),“面向过程”的方式暴露了巨大的问题:

  • 难以维护: 想象一下,一个有10000个步骤的超级菜谱。如果第500步的“盐”要改成“糖”,你可能还需要修改第2000步和第8000步(因为它们都依赖于盐)。它们紧密地“耦合”在了一起。
  • 难以复用: 你为“炒土豆丝”写了一套流程。现在你要“炒青椒肉丝”,你发现“切菜”、“倒油”、“翻炒”这些步骤很像,但你还是得把整个流程重写一遍。
    而面向对象就是为了解决这些问题而生的:
  • 易维护(封装): 你只需要告诉“厨师”对象把土豆丝的“盐”改成“糖”。至于他内部具体怎么操作,是否影响其他步骤,那是他自己的事,你(经理)不用管。
  • 易复用(继承): 你可以定义一个“炒菜机器人”的“父类”,它有“倒油”、“翻炒”等基本功能。然后让“炒土豆丝机器人”和“炒青椒肉丝机器人”都去继承这个父类,它们只需要添加自己独特的功能(比如“放土豆丝”或“放肉丝”)就行了,通用的功能不用重写

相关新闻

  • golang unique包和字符串内部化
  • 永久暂停window10更新,不想更新到window11
  • 算法第二章作业

最新新闻

  • 微信防撤回失效?RevokeMsgPatcher 2.0 技术原理与实战指南
  • 普宁连锁眼镜店哪家靠谱|自营和加盟的本质区别是什么 - 品牌观察
  • 普宁本地人常去的眼镜店|口碑最好的门店是怎么来的 - 品牌观察
  • MC9S12XE内存映射控制(MMC)详解:模式、分页与实战配置
  • 【2026年6月】自吸离心泵厂家推荐 - 多才菠萝
  • 普宁眼镜店哪家好|怎么判断本地眼镜店靠不靠谱 - 品牌观察

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号