早期的计算机编程语言都是面向过程的。程序由数据和算法构成,而数据可以构成复杂的数据结构,算法也是由上到下的复杂逻辑控制,这是一种将数据与操作算法分离开的编程思想。这种程序设计思想的重点是在代码中各个方法的执行上,C语言中提供了结构体来解决数据复杂度问题,可将一部分数据或属性包装起来,定义出一个复杂的数据结构,如Person结构体(包括姓名、年龄、身高、体重等一系列数据)。
动手写9.1.1
上面示例是C语言设计中的结构体。但是,这种结构也只能支持复杂的数据结构,对于每个数据的处理都要单独提供方法,而且这些方法与这个整体的结构体并没有关系。
后来在Java、C++、PHP、Python等语言中,人们对C语言中的结构体进行了升级,引入了一种新的编程思想——面向对象编程,即程序操作都是在操作对象。对象中不仅可以定义复杂的数据结构,也可以定义复杂的算法方法。对象将数据和方法封装起来,开发者需要负责对象内部的数据和算法,同时对外暴露接口供调用方使用,而调用方不需要关心实际对象内部的复杂逻辑,只需要调用接口。动手写9.1.2给出了Java中与Person结构体相同的示例,与C语言结构体不同的是它加入了算法方法。
动手写9.1.2(www.xing528.com)
开发人员发现这种编程思想更能解决实际问题,程序不仅是对象的集合,而且能够描述具有高复杂度的各类模型和算法。现实生活中人的思考是抽象的,会将遇到的事物抽象化,相同或类似的对象可以进一步进行抽象化,这时就出现了对象的类型——类。先定义类,然后由类去创建对象,最后由对象去管理整个程序,这个过程就像是人类思考先经过抽象后实例化再去执行一样,所以面向对象编程变得广泛起来。
值得注意的是,类的产生是抽象的结果,人们在认识复杂世界时,会将实物(或者可以说是对象)的一些近似特征抽出来,并且不考虑其中每个个体的细节。面向对象编程就是一种不断将数据和方法抽象化的过程。
面向对象编程在软件执行效率上并没有绝对的优势,它主要是一种方便开发者组织管理代码、快速梳理熟悉各个业务领域逻辑的思想方法,也是一种更贴近现实生活的编程设计方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。