相信很多程序员在最初接触Java的时候就听说过,Java是一种面向对象的开发语言,那么什么是面向对象呢?
所谓面向对象,其实是指软件工程
中的一类编程风格,很多人称之为开发范式、编程泛型(Programming Paradigm)。面向对象是众多开发范式中的一种。除了面向对象,还有面向过程、指令式编程和函数式编程
等。
虽然近几年函数式编程越来越被人们熟知,但在所有的开发范式中,我们接触最多的还是面向过程和面向对象两种。
只有理解了什么是面向过程和面向对象,才能更好地学习Java。
面向过程(Procedure Oriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。最典型的面向过程的编程语言就是C语言。
简单地说,在面向过程的开发范式中,程序员需要把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可。
也就是说,在进行面向过程编程时,可以先定义一个函数,然后使用诸如if-else、for-each等方式执行代码。最典型的用法就是实现一个简单的算法,比如实现冒泡排序
。
基于面向过程进行的软件开发,其代码都是流程化的,可以明确地看出第一步做什么、第二步做什么。这种方式的代码执行起来效率很高。
但是,面向过程同时存在代码重用性低、扩展能力差、后期维护难度比较大等问题。
面向对象(Object Oriented)的雏形最早出现在1960年的Simula语言中。当时的程序设计领域正面临一种危机:在软硬件环境逐渐复杂的情况下,软件如何得到良好的维护?
面向对象程序设计在某种程度上通过强调可重复性解决了这一问题。目前,较为流行的面向对象语言主要有Java、C#、C++、Python、Ruby和PHP等。
简单地说,在面向对象的开发范式中,程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
也就是说,在使用面向对象进行编程时,要把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如,想要造一辆车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。
面向对象的编程方法之所以受欢迎,是因为它更加符合人类的思维方式。用这种方式编写出来的代码的扩展性、可维护性都很高。
其实,面向对象也是一种对现实世界的理解和抽象的方法。通过对现实世界的理解和抽象,运用封装、继承、多态等方法,通过抽象出对象的方式进行软件开发。
这里提到的封装、继承、多态便是面向对象的三大基本特征,除此之外,面向对象还有五大基本原则,后续会一一介绍。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。