定义
面向对象 主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象,(万物皆对象)。
面向过程 是一种 以过程为中心 的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是 封装、继承、类。
理解
个人理解,其实就是原来最早使用的编程语言,如汇编、C语言等是广泛应用于底层开发,主要是偏机器语言,设计的思想就是面向过程,一步一步顺序执行的。而时代在进步,复杂的东西总是会往简单的方向发展,对于机器语言,人理解上比较困难,新的编程语言设计便会对人更友好,会用人们更易理解的方式编写程序,较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统。
JAVA语言从一开始的设计思路就是面向对象的,三大特性:封装、继承、多态,语言本身就支持,再通俗点说,JAVA语言开始就是对业务进行抽象,要做好设计,然后再进行拼装;而C语言就是定好main()函数,然后再逐步实现main()函数中所要用到的其他方法。
在一些简单的小应用、小程序上,不论还是C++还是JAVA,其实往往面向过程,根据逻辑进行编码就行了,简单快速,而对于稍复杂一点的系统,为了易维护、易复用、易扩展,就需要从顶层开始设计,不然全是长方法,共用方法,不容易理解和维护。
做新业务新系统设计时,使用面向对象思想,一开始不用过多去纠结单个对象设计的对不对,先从实际生活或前项目经验出发把大多数对象设计完,回过头看自己的整体设计,再根据业务进行调整,会容易很多。