面向对象,OOP,全名Object Oriented PRogramming,本意就是以对象为导向的编程。
OOP是如何演变而来的?
要只知道面向对象的是如何演变而来的,必须得先知道,在它之前人们是如何编程的,也就是面向过程编程。
早起的C语言就是典型的面向过程编程,计算机专业的学生一定都学过C语言,大家都知道C语言是如何编程的,特别是新手,定义大一堆变量,
然后再写一大堆的方法(好的话,不好的话甚至方法都懒得分离,在一个main方法中一大串代码直接走下来)来进行编程,这样编程的问题或许大家都会感受
到,最好是一口气写完你要做的程序,要不反过头再去看前面写的代码重新梳理流程,简直比重新写一遍的还痛苦,而且还会错误百出。这样的话,随着程序越来
越大,代码就越来越难维护,工作过的人们都不难理解,或者深有体会,一个项目至少不得十几万行代码以上吗,如果代码都是这样写的,那么管理成本与维护成本
简直太大,而且想要程序的扩展,难度和成本几乎的指数倍的增长,所以在OOP出现之前,上世纪C语言编程时期,就出现了代码危机,因为人们发现面向过程写的
代码,在扩展面前简直的毁灭级别的,特别是如果公司有人要离职,那么要接手他的代码,成本简直太高,所以无论是从维护还是扩展,面向过程变成已经走到瓶颈。
这个时候,面向对象的概念就出现了,最先将面向对象的思想与编程语言的结合所诞生的宠物,就是C++;
其实面向对象的思想也就是将现实世界的运行规律应用到编程中。
举个例子,现实世界中,我们想去吃炸鸡了,我们并不用自己去抓鸡,然后杀鸡,再去炸,我们只要去找个肯德基,然后进去点一个就行了,至于炸鸡的过程我们并不知道,也不想知道。
那么这件事情,用程序来实现的话,也是我这个对象,去找肯德基这个对象,然后调用肯德基的点炸鸡的方法,然后我就得到了炸鸡的对象,就完成了。这样编程的话,我们并不用关心,肯德基对象是如何实现的,谁来编写的,炸鸡是如何生成的,谁来生成的,我们只需要专心干自己的工作就行了,自己的工作仅仅是想要一个炸鸡,其他的并不想知道,如果这样编程的话,那么管理成本,维护成本,以及可扩展性成本大大的降低,新来接收工作的员工,也不用关心其他事,写做炸鸡腿功能的员工,就专心写作炸鸡腿的功能,写肯德基提供服务的员工,就专心写肯德基提供服务的功能,管理成本和维护成本就降了下来,以后如果想增加个卖冰激凌的功能,那么在肯德基店面这个对象中增加一个卖冰激凌的方法就行了,扩展起来,也再也不用看一下整个代码流程才能进行,所以OOP其实就是模拟真实世界来编程的一种思想,只要你模拟与抽象的好,那么理论上来说,你的程序也可以像真实世界一样,无限的扩展与容错性。
新闻热点
疑难解答