博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向过程VS面向对象的理解
阅读量:6567 次
发布时间:2019-06-24

本文共 1460 字,大约阅读时间需要 4 分钟。

【一】历史篇

           简单时代----面向过程编程:

                      定义数据: 数据1   数据2  数据3  数据4

                      定义函数: 函数1   函数2  函数3  函数4

                      综上最后:各种函数和数据的操作

               当软件发展的越来越大,代码量越来越多,复杂度更大时---编写面临两个问题:命名重复、代码重复

           复杂时代----面向对象编程:

               命名问题的解决:分类

                       eg: 未分类前命名---

                                                      检测 :整数加  整数减  整数乘  整数除

                                                                 复数加  复数减  复数乘  复数除

                                                                 小数加

                            分类后的命名---

                                                      整数 :{检测    加 减 乘 除}

                                                      复数 :{检测    加 减 乘 除}

                                                      小数 :{检测    加 减 乘 除}

                                                      分数 :{检测    加 减 乘 除}

                         类的概念呼之欲出,命名也不会同其他加减乘除函数有冲突。但存在继承衍生不好维护等问题。

             衍化时代----修正以上问题:

                 继续提取以上类  :整合

                        eg: 父类上继承类---

                                                      数   : {检测    加 减 乘 除}         

                                                      整数: {沿用上面数的设计}

                                                      小数: {沿用上面数的设计}

                

               所谓继承,就是数这个类的整体设计,沿用给整数,分数小数这些类,作为他们的编写大纲去编写加减乘除这些函数的具体代码。根据整数,分数,小数各自的性                质,做出各自的调整。

               这时数这个类,如果你给它里面的加减乘除函数的写了一些很粗糙简单的代码,就叫做父类,基础类。子类们“继承”了父类(把代码进行了复杂化)。

               如果没写,那这个类其实就只是个设计图,叫做抽象类。子类们“实现”了抽象类(把空空的设计变成了具体代码)。

【二】发展篇

 

                                         

==============================================================================================================================

【定义篇】

-----------面向过程 ,对某件事整个发生的经过进行模拟的一种编码方式。 eg1: 写作文中记叙文--6要素:时间、地点、人物、事情起因、经过、结果。

                                即用编程语言‘记述’现实中某件事情发生的整个过程,遵从语言规范同时可以逼近模拟实现过程。

                                                                                                                  eg2:早上起床--->学校  (a)起床 (b)穿衣 (c)洗脸刷牙 (d)去学校

-----------面向对象 ,“万物皆对象!”开发编译器的前辈在设计它的时候,内置类型(int ,char, double等)。

                                即万事万物都可以归类然后抽象为一种特定的数据类型------类的形成(由属性成员变量+行为特征函数组成)

                                                                                                                           属性:对象个性的区别描述   函数:对象共性的行为体现

 

【区别篇】

 

【汇总篇】

 

 

【参考篇】

        1、一篇形象优秀阐述C++认识的文章:详细阐述面向过程和面向对象之间的区别和认识---重点讲解了面向对象三大要素的思想,举例贴切!

              http://www.cnblogs.com/nihaoCPP/p/object-oriented-programming.html#3129583

        2、作者用思维导图的方式绘制了面向过程编码的认识和结构

              http://blog.csdn.net/han_yankun2009/article/details/8148134

        3、 作者把面向对象中的继承、模板、实例等一步步娓娓道来,非常深刻!

              https://www.zhihu.com/question/27468564?sort=created

 

转载于:https://www.cnblogs.com/cjhd/p/7173005.html

你可能感兴趣的文章
IPC——线程信号问题
查看>>
ajax 的理论以及需要的常用参数
查看>>
【Unity3D】资源对象、预设、查找对象、组合模式等知识点
查看>>
iOS开发UI篇—实现UITableview控件数据刷新
查看>>
linux命令
查看>>
chrome取消安全模式
查看>>
团队-象棋游戏-设计文档
查看>>
hibernate Expression详解
查看>>
HTTP长连接和短连接以及推送服务原理(转)
查看>>
问卷设计入门
查看>>
input子系统分析之三:驱动模块
查看>>
jquery 选择时间(小时)区间(四)
查看>>
jquery 选择时间(小时)区间(二)
查看>>
WebService的编写与调用
查看>>
(模板)字符串哈希
查看>>
input:focus
查看>>
java中String,int,Integer,char、double类型转换
查看>>
Hdoj 2544
查看>>
nginx转发端口路由器再转发
查看>>
在eclipse里的 flex 没有可视化的编辑
查看>>