前言:面向过程于面向对象的区别,自己在学完c语言和Java语言(学的啥也不是…)之后也没有弄懂,甚至于在理解C语言到底是干嘛道的,竟然震惊的发现,啥都不懂。内心慌得一批,赶紧回头研究,以下是做的一些总结。

  • C语言基础知识

首先需要理解一下“语言”,是用来干嘛的,是用来交流的,方便人的日常行为活动。而c语言是人与机器的一种沟通方式,指挥机器完成人的某些功能需求。接下来就需要介绍一下“语言”的发展史。最早的是机器语言,机器语言顾名思义,机器可以直接识别的语言,是一种简单的0/1代码,机器是按照冯诺依曼的设计思想(到现在为止依然是)计算机的内部采用二进制来表示指令和数据。机器语言对机器来说很容易,但对人(尤其是程序员)来说太痛苦了,你给机器讲一段话,你需要写很多个0和1,太费劲了,人们就想在机器语言之间做一个桥梁,升级版的汇编语言就出现了----Assembly,一种解释语言,在0/1的代码上有了进一步提升,人们还是不满意,“语言”继续进化,升级成高阶语言典型代表—C语言,最早的C语言并不叫作C,而是K&R是1972年出现的,然后根据年代的修改出现了C89,C99,C11等。我们现在接触最多的还是C99,虽然语言转化过程延长了,但人的功能需求与计算机的功能实现没有发生改变。或许往后的发展,人们直接可以利用现代语言进行编程。然后就需要弄懂语言背后是如何发挥作用的。都知道计算机内部是指令与数据的并存,人们想要实现某些功能,必须与计算机进行指令与数据的交互,而这些东西存储在一个叫内存的东西上。C语言通过数据类型操作内存,形象的理解内存就是一个个小格子,加上解析方法完成控制。内存以字节(Byte)为基本单位,一个字节是八个比特(bit),也就是装八个0/1的小格子,常用的解析方法有int ,char,float,分别为4B,1B,4B,长格子与短格子之间可以相互转化,但数值上却不尽相同。

  • 面向对象与面向过程
    先形象的举几个例子,从不同的角度理解面向对象与面向过程。最精简的回答,面向过程编年体,面向程序纪传体,这个或许有点晦涩。下面这个就比较好理解了,面向过程就像是蛋炒饭,面向对象就像是盖浇饭。盖浇饭顾名思义,饭菜分离,想吃什么样的菜,就往米上盖什么菜,单你想吃别的蛋炒饭就只能重新炒了,由此可以看出来面向对象更加好维护,把盖浇饭分成米,菜两个对象,,而蛋炒饭米,蛋混合在一起,耦合度较高,不利于进行分离。想换口味,只能冲做。面向对象从概念上理解,构成问题的各个事务分解成各个对象,描述某个事务在整个问题中的行为。面向过程,先分析出解决问题的各个步骤,用函数一步步实现。就像是绘制一个五子棋比赛,使用面向过程的分析方法,先开始游戏,黑棋走,绘图,白棋走,判定输赢,绘图,判定输赢,返回到黑棋走,而使用面对对象,就只需要考虑黑白双方下棋(行为一样),棋盘系统(绘制地图),系统规则,执行过程,用户输入,第一类对象,第二类对象,第三类对象,都是对象与对象的结果见相互之间的交流。在形象的理解一下两者之间的关系,有点类似与小米,与华为之间的关系,小米手机,各个生产商组装起来的一部手机,他只负责了一个拼装,而华为造一部手机,先找原材,造屏幕,造手机架,摄像头,马达,声学等等,一步一步知道手机制作完成。最后可以得知面向过程是一个具体的东西,是面向过程的基础。两者在现在的编程中相辅相成,往往总是混合在一起。