首页 理论教育 软件制造工程-面向对象特征、继承和重用的技术

软件制造工程-面向对象特征、继承和重用的技术

时间:2023-11-23 理论教育 版权反馈
【摘要】:面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。图2-1面向对象基本特征C++,支持多继承、多态和部分动态绑定。2)继承面向对象的继承是为了软件重用,简单理解就是代码复用,把重复使用的代码精简掉的一种手段。

软件制造工程-面向对象特征、继承和重用的技术

1.面向对象编程

面向对象在结构化设计方法出现很多问题的情况下应运而生的。结构化设计方法求解问题的基本策略是从功能的角度审视问题域。它将应用程序看成实现某些特定任务的功能模块,其中子过程是实现某项具体操作的底层功能模块。在每个功能模块中,用数据结构描述待处理数据的组织形式,用算法描述具体的操作过程。面对日趋复杂的应用系统,这种开发思路在审视问题域的视角、抽象级别、封装体、可重用性等4个方面逐渐暴露了一些弱点。

上述弱点驱使人们寻求一种新的程序设计方法,以适应现代社会对软件开发的更高要求,面向对象由此产生。面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。

面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征,通过建立模型而得到的抽象是人们对客体认识的深化。

当我们提到面向对象的时候,它不仅指一种程序设计方法,更多意义上是一种程序开发方式。

2.面向对象开发的编程语言

面向对象语言是以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分,面向对象的语言有C++、Java、C#等。语言提供了类、继承等成分,有封装性、多态性、类别性和继承性4个主要特点,如图2-1所示。

图2-1 面向对象基本特征

(1)C++,支持多继承、多态和部分动态绑定。

C++是C语言的继承,既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小皆可。

(2)Java,支持单继承、多态和部分动态绑定。

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。(www.xing528.com)

(3)C#,也支持单继承,与Java和C++等有很多类似之处。

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#看起来与Java有着惊人的相似之处。它包括诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET Framework网络框架的主角。

3.面向对象编程的主要特点

1)抽象和封装

类和对象体现了抽象和封装。

抽象就是解释类与对象之间关系的词。类与对象之间的关系就是抽象的关系。一句话来说明:类是对象的抽象,而对象则是类的特例,即类的具体表现形式。

封装两个方面的含义:一是将有关数据和操作代码封装在对象当中,形成一个基本单位,各个对象之间相对独立、互不干扰;二是将对象中某些属性和操作私有化,以达到数据和操作信息隐藏,有利于数据安全,防止被修改。把一部分或全部属性和部分功能(函数)对外界屏蔽,就是从外界(类的大括号之外)看不到,不可知,这就是封装的意义。

2)继 承

面向对象的继承是为了软件重用,简单理解就是代码复用,把重复使用的代码精简掉的一种手段。如何精简?当一个类中已经有了相应的属性和操作的代码,而另一个类当中也需要写重复的代码,那么就用继承方法,把前面的类当成父类,后面的类当成子类,子类继承父类,理所当然。就用一个关键字extends就完成了代码的复用。

3)多 态

没有继承就没有多态,继承是多态的前提。虽然继承自同一父类,但是相应的操作却各不相同,这就叫多态。由继承而产生的不同的派生类,其对象对同一消息会做出不同的响应。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈