程序语言发展至今,已出现了多种风格的编程语言,大体主要分为以下两种风格的语言:面向过程(以C 语言为代表)和面向对象(Java、C#、C++等)。并不是说哪种语言是最好的,每种风格语言的好坏是针对不同方面的应用程序而言的。比如说,面向过程语言适用于计算密集型操作(复杂算法等)的设计,而面向对象适用于广阔的应用程序范围(这也是Java 能迅速发展并占据广大市场的原因之一)。
➢ 面向过程(Process Oriented)
基于该风格的程序的设计都是在想怎样才能一步一步地解决问题,思维方式是过程,或是说步骤。
➢ 面向对象(Object Oriented,OO)
起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法,之后又有面向对象的分析(OOA,Object Oriented Analysis)、面向对象的设计(OOD,Object Oriented Design)以及我们经常说的面向对象的编程(OOP,Object Oriented Programming)。
那怎么区分面向过程和面向对象?只要是具备以下特点的语言都可以将其看作为实现了面向对象的语言。
1.抽象(Abstract)
抽象就是一个对象与其他所有对象区别的基本特征,是为不同的观察者提供不同的角度来看待对象。
抽象强调实体的本质、内在的属性,在软件开发中,抽象是指在决定如何实现对象之前对对象的意义和行为的定义(即类的实现)。通过对类的了解,也可以将抽象定义为:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征。(www.daowen.com)
2.封装
所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java 语言的封装性较强,在Java 中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java 也提供了相应的对象类型以便与其他对象交互操作。
3.继承
继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java 提供给用户一系列类(class),这些类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java 只支持单一继承。其实在没有面向对象的世界里也有继承,编程语言都支持int 直接转换为float,这叫低类型转换为高类型。类其实是一个自定义数据类型,父类是高类型,子类是低类型。
4.多态性
多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型、浮点或字符。不管存储的是何种数据,堆栈的算法实现都是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。
以上就是面向对象的一些主要特征,具备了这样特征的程序语言就可以称之为面向对象语言。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。