区别方面,面向过程语言最基本的概念是函数,面向过程语言将一个个功能封装成一个个函数。因此程序的耦合度较高。而面向对象语言最基本的概念是对象(数据及其操作的方法)。各个对象负责自己的工作,为其他对象提高功能。相对而言程序的耦合度较低,内聚度高。
优势方面,简单来说,面向过程语言(C语言为代表)编程最大的优点的效率高,所以现在操作系统或者视频编解码(比如H.264)等主要是采用接近底层C语言;
而面向对象语言(Java语言为代表)最大的优点是符合抽象,封装,细节隐藏等基本程序设计的原则。需求分析、程序设计、编码实现等过程可以无缝衔接(利用UML建模)。面向对象的程序在结构上更加健壮和稳定。因此类似淘宝网这些效率和性能的需求不是至关重要(当然也是性能很重要,相比之下更重要的是系统的稳定性、安全性)的后台是用Java写的。
不过这些只有等你做过很多很大很复杂的程序之后才会真正了解两者的区别和优势。如果都是写HelloWorld程序,那两者基本不存在区别。