竹笋

首页 » 问答 » 常识 » 面向对象和面向过程的对比
TUhjnbcbe - 2023/6/3 21:59:00

相信很多程序员在最初接触Java的时候就听说过,Java是一种面向对象的开发语言,那么什么是面向对象呢?

所谓面向对象,其实是指软件工程

中的一类编程风格,很多人称之为开发范式、编程泛型(ProgrammingParadigm)。面向对象是众多开发范式中的一种。除了面向对象,还有面向过程、指令式编程和函数式编程

等。

虽然近几年函数式编程越来越被人们熟知,但在所有的开发范式中,我们接触最多的还是面向过程和面向对象两种。

只有理解了什么是面向过程和面向对象,才能更好地学习Java。

1.什么是面向过程

面向过程(ProcedureOriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。最典型的面向过程的编程语言就是C语言。

简单地说,在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可。

也就是说,在进行面向过程编程时,可以先定义一个函数,然后使用诸如if-else、for-each等方式执行代码。最典型的用法就是实现一个简单的算法,比如实现冒泡排序

基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行起来效率很高。

但是,面向过程同时存在代码重用性低、扩展能力差、后期维护难度比较大等问题。

2.什么是面向对象

面向对象(ObjectOriented)的雏形最早出现在年的Simula语言中。当时的程序设计领域正面临一种危机:在软硬件环境逐渐复杂的情况下,软件如何得到良好的维护?

面向对象程序设计在某种程度上通过强调可重复性解决了这一问题。目前,较为流行的面向对象语言主要有Java、C#、C++、Python、Ruby和PHP等。

简单地说,在面向对象的开发范式中,程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。

也就是说,在使用面向对象进行编程时,要把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如,想要造一辆车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。

面向对象的编程方法之所以受欢迎,是因为它更加符合人类的思维方式。用这种方式编写出来的代码的扩展性、可维护性都很高。

其实,面向对象也是一种对现实世界的理解和抽象的方法。通过对现实世界的理解和抽象,运用封装、继承、多态等方法,通过抽象出对象的方式进行软件开发。

这里提到的封装、继承、多态便是面向对象的三大基本特征,除此之外,面向对象还有五大基本原则,后续会一一介绍。

内容摘自《深入理解Java核心技术(双色)》,作者张洪亮(

Hollis),他是阿里巴巴技术专家,51CTO专栏作家,CSDN博客专家,掘金优秀作者,《程序员的三门课》联合作者,《Java工程师成神之路》系列文章作者;热衷于分享计算机编程相关技术,博文全网阅读量数千万。

1
查看完整版本: 面向对象和面向过程的对比