面向对象和面向过程很本质的差别在于考虑问题的出发点不同,面向过程是以事件流程为考量问题的出发点,而面向对象则是以参加事件的角色(对象)为考量问题的出发点,所以面向对象在处理难题时非常灵活。目前,面向过程的语言更多被用于处理底层业务,而面向对象编程则更多用于推动一些业务逻辑复杂的大型平台。
从结构下来说,面向过程的特征是模块化和流程化,而面向对象的特征是封装、继承和多态,这上面就有本质的差别了。面向过程以功能(函数)作为模块化的基础,而面向对象则以类成为功能的组织基础,而类必须一个“抽象”的过程。比如在Java中,完成一个功能的调用应该三个步骤,分别是类的定义,对象的构建,方法的调用,看一个例子:
而C语言的功能实现则便于得多,看一个例子:
通过这个事例我们看到,Java更麻烦一些,Java需要先按照功能抽象出类,然后构建出对象,再之后借助对象能够完成对方式的调用,而C语言则只应该函数的定义跟读取,并不需要创建对象,所以C语言的执行效率更高。
但是因为有了对象的概念,面向对象编程的灵活性更强,对象与对象之间也可以形成非常复杂的交互关系,也因而会有继承和多态的概念。继承的核心特征是复用,避免的文章面向对象与过程的区别,大家可以关注我的头条号并查看,这里就不赘述了。
我使用Java和C语言的时间都非常久,我在头条上也写了关于Java编程方面的系列文章,如果有编程方面的难题,也可以咨询我。
谢谢!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-131160-1.html