什么是面向对象编程(快速对比理解编程中)
相信很多程序员在最初接触Java的时候就听说过,Java是一种面向对象的开发语言,那么什么是面向对象呢?
所谓面向对象,其实是指软件工程
中的一类编程风格,很多人称之为开发范式、编程泛型(Programming Paradigm)。面向对象是众多开发范式中的一种。除了面向对象,还有面向过程、指令式编程和函数式编程
等。
虽然近几年函数式编程越来越被人们熟知,但在所有的开发范式中,我们接触最多的还是面向过程和面向对象两种。
只有理解了什么是面向过程和面向对象,才能更好地学习Java。
1. 什么是面向过程面向过程(Procedure Oriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。最典型的面向过程的编程语言就是C语言。
简单地说,在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可。
也就是说,在进行面向过程编程时,可以先定义一个函数,然后使用诸如if-else、for-each等方式执行代码。最典型的用法就是实现一个简单的算法,比如实现冒泡排序
。
基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行起来效率很高。
但是,面向过程同时存在代码重用性低、扩展能力差、后期维护难度比较大等问题。
2. 什么是面向对象面向对象(Object Oriented)的雏形最早出现在1960年的Simula语言中。当时的程序设计领域正面临一种危机:在软硬件环境逐渐复杂的情况下,软件如何得到良好的维护?
面向对象程序设计在某种程度上通过强调可重复性解决了这一问题。目前,较为流行的面向对象语言主要有Java、C#、C 、Python、Ruby和PHP等。
简单地说,在面向对象的开发范式中,程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
也就是说,在使用面向对象进行编程时,要把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如,想要造一辆车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。
面向对象的编程方法之所以受欢迎,是因为它更加符合人类的思维方式。用这种方式编写出来的代码的扩展性、可维护性都很高。
其实,面向对象也是一种对现实世界的理解和抽象的方法。通过对现实世界的理解和抽象,运用封装、继承、多态等方法,通过抽象出对象的方式进行软件开发。
这里提到的封装、继承、多态便是面向对象的三大基本特征,除此之外,面向对象还有五大基本原则,后续会一一介绍。
内容摘自《深入理解Java核心技术(双色)》,作者张洪亮(@Hollis),他是阿里巴巴技术专家,51CTO 专栏作家,CSDN 博客专家,掘金优秀作者,《程序员的三门课》联合作者,《Java工程师成神之路》系列文章作者;热衷于分享计算 机编程相关技术,博文全网阅读量数千万。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com