zoukankan      html  css  js  c++  java
  • 面向过程VS面向对象的理解

    【一】历史篇

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

                          定义数据: 数据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

  • 相关阅读:
    【转】B树以及B+树的区别
    epoll 笔记
    HTTP 请求的读取和分析
    获取指定网页的所有链接
    Python爬取表情包
    Python重命名文件夹下的文件(包含子文件夹下的文件)
    BeautifulSoup根据class的属性查找标签的方法
    群聊斗神
    Python简单的下载图片
    Python 记录一个坑
  • 原文地址:https://www.cnblogs.com/cjhd/p/7173005.html
Copyright © 2011-2022 走看看