面向过程和面向对象的区别
一开始,在我们学习编程语言时,就会接触面向对象和面向过程的概念,比如:C语言是面向过程的语言,而C++是面向对象的语言,而且一般高校,都是先学习面向过程语言C,再学习面向对象C++,甚至一些非计算机类学习只学习面向过程的语言C,并且作为其必修课。但是,我们很少会统一系统的考虑两者的区别。
现在,基于我们之间的一个讨论课,总结一下两者的区别,当时也是参考了网上的很多资料,而且面向过程的资料很不好找。
两种程序设计的思想
学习一种语言,不仅仅是会使用,而且要掌握它的思想,这对于学习来说,起引导性作用。
面向过程的程序设计思想
面向过程的结构化程序设计思想:是采用面向过程的方法来设计结构化程序。结构化程序通常包含一个主过程和若干个子过程,其中每个子过程都描述了某一个小问题的解决方法,再由主过程自顶向下调用各子过程,来逐步解决整个问题。
如上图所示,面向过程的程序思想是主过程->子程序->……->最底层的子过程,其执行过程是从主过程的首句开始,在主过程的结束语句处结束。下面我们用C语言来类比一下。
int main(){
//开始处
//功能语句
return 0;
}//结束处
通过观察以上C的主函数框架,我们可以,主过程对应的就是主函数,主函数开始处的“{”就是程序开始程序的地方,主函数结束处的“}”就是程序结束的地方,其中的子过程就是C语言中的子函数、功能语句。
因此我们可以知道:结构化程序设计方法本质上就是一种数学思维或计算机思维方法,它和人们认识世界时所习惯使用的方法不同。
面向对象的程序设计思想
上面介绍的面向过程的程序设计方法,它把重点放在解决问题的过程上,其存在最大的缺点是,将数据结构和操作这些数据结构的函数分开了,操作繁琐。所以,我们引入面向对象的程序设计思想。
面向对象的程序设计思想:其主要思想是将成员数据及处理这些数据的相应成员函数封装到一个类中,使用类的数据变量则称为对象。
我们在使用面向对象的程序设计方法设计软件系统时,首先要清楚软件系统中的对象,在面向对象的程序设计中,对象就是将数据和对数据进行的合法操作结合于一体的抽象实体,以这种实体所构成的程序就是面向对象的程序(对象只是某个具体类的实例化,并不等价),这种思考方法是接近于人们日常思考问题的。
- 一般来说,面向对象的程序在程序结构上表现为类与类间的联系,面向对象的程序的功能是通过特定的消息传递序列来实现的。这些联系反映了程序运行时对象之间的消息(稍后介绍)传递,而程序中类之间的静态联系提供了在程序运行时对象之间的消息传递的通道。
两种程序设计的相关概念
面向过程的程序设计相关概念
面向过程:是一种以过程为中心的编程思想。首先,我们思考问题,提取去解决问题的步骤,然后通过子过程来把这些步骤分别实行,最后在主过程中按照需要重新组合调用,最终达到所需要的结果就好。
其实,面向过程的程序设计思想是最为实际的一种思考方式,也是通过代码的追溯就可以简单的达到理解程序功能。面向过程是一种基础的方法,它考虑的是实际地实现。一般的面向过程的方法是自顶向下设计,而且遵从模块化的设计,也就是说,将功能封装为一个模块,在主过程中调用。
当程序规模不是很大时,面向过程的方法还会体现出一种优势,即:程序逻辑清晰流畅(按着模块与函数的方法可以很好的组织)。
面向对象的程序设计相关概念
这部分简单来说就是:
面向对象 = 对象 + 类 + 继承 + 消息
下面,我们具体解释一下&