面向对象技术概述
1.1 知 识 要 点
1.面向对象技术的基本概念
∙ 面向对象技术是以对象为基础、以事件或者消息来驱动对象执行处理的程序设计技术。
∙ 对象是包含客观事物特征的抽象实体,是属性和行为的封装体。在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。
∙ 类是对具有相同属性和行为的一组对象的抽象描述。
∙ 事件是系统产生的动作或是运行应用程序产生的动作。事件通过消息描述,消息是描述事件发生的信息。
∙ 消息是对象间交互的手段,是要求某个对象执行某个操作的规格说明。
2.面向对象技术的基本特征
∙ 抽象性是指忽略事物中与当前目标无关的非本质特征,而强调本质特征的特征。
∙ 封装性是指把对象的属性和行为封装在一起,并尽可能隐藏对象的内部细节的 特征。
∙ 继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征。
∙ 多态性是指不同对象收到相同消息时可以产生多种不同的行为方式的特征。
【重点】
∙ 面向对象技术的概念。
∙ 类与对象的概念及关系。
∙ 面向对象与面向过程程序设计的区别。
∙ 面向对象技术的基本特征。
【难点】
∙ 类与对象的概念。
∙ 面向对象与面向过程程序设计的区别。
∙ 面向对象技术的基本特征。
1.2 习 题 解 答
1.什么是面向对象技术?
【问题解答】
面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它具有抽象性、封装性、继承性及多态性。
2.面向对象与面向过程程序设计有什么不同?
【问题解答】
面向对象与面向过程程序设计有如下不同:
(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操
作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。
(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。
(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。
(4)面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。
3.面向对象技术有哪些优点?
【问题解答】
面向对象技术具有程序结构清晰,自动生成程序框架,实现简单,可有效地减少程序的维护工作量,代码重用率高,软件开发效率高等优点。
4.面向对象技术中的封装性有何优缺点?如何克服这些缺点?
【问题解答】
封装将对象有关的数据和行为封装成整体来处理,使得对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。另一方面,当进行修改对象内部时,由于只有少量的外部接口对外提供服务,因此同样减小了内部的修改对外部的影响。
如果一味地强调封装,对象的任何属性都不允许外部直接存取,则要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。为了避免这一点,在程序的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。
5.为什么要应用继承机制?
【问题解答】
客观事物既有共性,也有特性。如果只考虑事物的共性,而不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系。抽象机制是考虑事物的共性,继承机制是考虑事物的特性,这样才能完整地描述客观世界的层次关系。继承能使软件模块具有可重用性、独立性,缩短软件开发周期,提高软件开发效率,同时使软件易于维护。
6.C++对多态性的支持体现在哪些方面?
【问题解答】
C++的多态性分为编译时多态和运行时多态。编译时多态是指在程序的编译阶段由编译系统根据参数确定与哪个同名的函数相联系;运行时多态是指在程序的运行阶段才根据产生的信息确定需要调用哪个同名的函数。C++通过函数重载和运算符重载实现编译时多态,通过继承和虚函数来实现运行时多态。
7.目前常用的面向对象程序设计语言有何异同?
【问题解答】
目前常用的面向对象程序设计语言有C++、Java、Visual Basic等。C++是混合型面向对象程序设计语言,继承并改进了C语言,是一种既支持面向对象又支持面向过程的程序设计方法。Java是纯面向对象程序设计语言,从C++发展而来。C++和Java均支持面向对象技术的基本概念和基本特征,如封装、类、构造函数、析构函数、继承、多 态等。
C++与Java语法描述有相同之处,也有不同之处。如基本结构语句的语法大致相同,而类定义的语法等方面则不相同。此外还有以下不同:
(1)C++有运算符重载机制,而Java没有此特性;
(2)C++支持多重继承,而Java只支持单重继承;
(3)C++通过构造函数创建对象,可以直接使用指针来操作对象的成员,而Java通过new运算符创建对象,通过new运算符返回的对象引用来使用对象,而不是直接操作指针;
(4)C++程序要显式地释放所分配的内存,而Java具有内存垃圾收集机制,自动管理内存,不需要显式释放所分配的内存。
Visual Basic继承了BASIC语言所具有的语法简单、容易学习、容易使用、数据处理能力强的特点,又引入了面向对象、事件驱动的编程机制和可视化程序设计方法,大大降低了开发Windows应用程序的难度,有效地提高了应用程序开发的效率。但是,Visual Basic存在语法不严格、开发出的系统稳定性较低的缺点。相对C++来说,Visual Basic面向系统底层的编程能力有限。
8.什么是 .NET?
【问题解答】
.NET是一种面向网络、支持各种用户终端的开发平台。它定义了一种公用语言子集(Common Language Subset,CLS),为符合其规范的语言与类库之间提供无缝集成的混合语言。.NET统一了编程类库,提供了对下一代网络通信标准——java面向对象的特征有哪些方面可扩展标记语言(eXtensible Markup Language,XML)的完全支持,使应用程序的开发变得更容易、更简单。所以 .NET就是Microsoft的XML Web服务平台,不论操作系统或编程语言有何差别,XML Web服务均能使应用程序在Internet上传输和共享数据。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论