2012级面向对象技术复习提纲

2012级面向对象技术复习提纲

1 理解面向对象的思想(封装性、继承性、多态性),作出一个简述。

2 什么是分解、耦合度和内聚度?

3 什么是动态绑定?

4 什么是用例图,用例图有哪些部分组成。

5 用例图中参与者之间的关系有哪些?用例之间的关系有哪些?

6 试描述用例图在UML中的地位和作用。

7 掌握用例模型的获取方法。

8 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。

?扩展关系:基用例是可以独立于扩展用例存在的,只是在特定的条件下,它的行为可

以被另一个用例的行为所扩展

?包含关系:被包含的用例(此例中的检查座位详情)不是孤立存在的,它仅作为某些

包含它的更大的基用例(此例中的预订座位、安排座位)的一部分出现

?泛化关系:用来表示参与者与参与者之间,用例与用例之间的特殊/一般化关系

9 类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。

10 简述类的聚合和组合关系的异同点。

11 对象图的适用场景以及它的优缺点。

对象图适用于论证类模型的设计以及对源代码进行分析和说明。其优点是能够直观理解出系统运行时的实时状态,缺点是比较复杂,工作量大。

12 掌握交互图(时序图与协作图)的绘制方法。

13 掌握活动图、状态图的绘制方法。

14 类的设计原则包括哪些内容?

15 包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。

16掌握设计模式、软件复用的概念,掌握所介绍的各种设计模式(单实例、工厂、适配器、对象装饰、桥接、职责链、策略等)的用途,类图,以及相关实例。

17 什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型。

实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。

将分析类划分成这三种类型的好处在于:

所产生的类更小更专门化;这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。

18 请简要阐述在软件开发过程中使用UML的必要性以及好处。

19 在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。

20 简述面向对象分析过程。

获取客户对系统的需求,包括标识场景和用例,以及建立需求模型;

用基本的需求为指南来选择类和对象;

定义类的结构和层次;

建造对象-关系模型;

建造对象行为模型;

利用用例/场景来复审分析模型。

21 简述面向对象设计过程。

系统设计;

对象设计;

消息设计;

复审。

22 请观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。

23. 简单的数字钟包含两个按钮A和B,系统启动后进入显示时间(时、分、秒)状态。在显示时间状态下按钮A用于切换显示时间->设置小时->设置分钟->显示时间等状态;在设置小时、设置分钟状态下按B键用于修改时间。试画出其状态转换图。

24 某“订货”用例的文字描述如下:接收顾客的订单、确认订单是否已付款。若未付款,则取消并退回订单;若已付款,则检查每个订单项。对有货的订单项更新库存,同时向顾客发放提货单;对于缺货的订单项则向顾客发放缺货单,同时向采购人员发放采购单。请用活动图描述这一用例。

25 掌握UML 中各种模型图的作用,画法,结合“网上学生选课系统”仔细理解。 26 无向图包括点集和边集,其中边集的边连接着点集的一对点,如下图所示。试用类模型描述无向图,只需描述其结构,不需描述其中点的位置和边的长度等信息。

V5

V4

V2

V3

e1

e2

27 简单有向图与无向图类似,只是边是有向的,如下图所示。试用一个类模型描述有向图。

V5

V4

V2

V3

e2

28 下面类图是一个图形交互编辑器的部分类图,其中sheet (页面)是Line 和Box 的集合,selection 是选中的Line 和Box 的集合。在下面的类图中没能表示一个Line 或Box 元素只能属于sheet 或selectio 之一的约束,试修改该类图,使其能表示该约束关系。

*

*

29 优化下面的类图,使其在没有确认专栏(Culumn)之前可以确定文本行(Line)在哪个页面(Page)上。

30 在下图中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。

对象图实例

31. 用面向对象方法建立一个现实问题的分析模型。

题目如下:

学校管理系统要存储下列数据:

(1)系:系名,系主任

学生:学号,姓名,学生所属系

教师:工作证号,姓名,教师所属系

教授:研究领域

研究生:专业方向

课程:课程号,名称,学分

(2)学生每学期要选修若干门课程,每门课有一个考试成绩;某个学期开设的某门课程只有一个任教教师;一个教师只任教一门课;一个教师有能力讲授多门课程,一门课程也可以有多位教师能够讲授;每个研究生只能跟随一位教授.

试画出表示上述数据的类模型。

32. 分析下面的类图,画出新的类图,将原图中的多对多的关系转换为1:M(一对多)关系。

33. 信用卡可能处于“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状态,而从“关闭”状态必须提供密码验证才能进入“开放”状态,“开放”状态又包括“透支”和正常状态之间的变化,当剩余金额少于0,或者使用额度大于剩余金额,或者结算余额小于0时进入透支状态,反之则为正常状态。画出信用卡的状态转换图。

34. 请判断以下类图中的类关系是否合适,并说明理由。

飞机有机翼、机身、驾驶舱

商店里的电器,一台电器可以是一台洗衣机,也可以不是;一台电器可以是一台电视机,也可以不是;一台电器可以是一台空调,也可以不是。

公司员工很多,包括程序员、分析员与项目经理等。

35. 仔细分析“语音邮箱系统”的“保留语音信息”和“拨打邮箱号”的用例事件流描述,请找出里面的对象,并画出时序图或协作图。

用例1:拨打邮箱号

呼叫者拨打语音邮件系统的主号码;

语音邮件系统发出提示音:输入邮箱号码并加#号

呼叫者输入接收者的邮箱号

语音邮件系统发出问候语:已进入XX的邮箱,请留言。

用例2:保留语音信息

呼叫者“拨打邮箱号”

呼叫者说出信息

呼叫者挂断电话

语音邮件系统将记录的信息存放在接收者的邮箱中。

36. 假设某高校需要建立一个档案管理系统,而你是该软件系统的负责人。你所在的软件公司与高校一致同意系统的构建采用面向对象方法。作为开发负责人,请你结合本课程中的学习知识,提供参考的软件体系结构设计方案,描述开发这个系统的过程,并写出开发过程的每个步骤中你认为应该用到的主要技术。

在面向对象技术中,对已有的类得特征稍作改变就可生成其他的类,这种方式称为(C)A.委托 B.代 C.继承 D.封装

类库是一种预先定义的程序库,它以程序模块的形式,按照(B)把一组类的定义和实现组织在一起:(C)对类库的建设提供了强有力的支持。

A.类的功能

B.类的层次结构

C.实例之间的调用关系

D.类的类型

A.引用

B.重置

C.类属类

D.封装

UML是一种面向对象的统一建模语言。它包含10种图,其中,用例图展示了外部actor

与系统所提供的用例之间的连接,UML中的外部actor是指(D),用例可以用(C)图来描述。状态图指明了对象所有可能的状态以及状态之间的迁移。如果一个并发的状态由n个并发的子状态图组成,那么,该并发状态在某个时刻的状态由(A)个子状态中各取一个状态组合而成。协作图描述了协作的(A)之间的交互和链接,它画成(A)图的形式。

A.人员

B.单位

C.人员或单位

D.人员或外部系统

A.类

B.状态

C.活动

D.协作

A.每一

B.任意一

C.任意二

D.任意m(m<=n)

A.对象

B.类

C.用例

D.状态

A.对象

B.类

C.用例

D.状态

在面向对象分析过程中,用概念模型来详细描述系统的问题域,用(B)来表示概念模型;用(A)来描述对象行为。

A.序列图B类图C协作图D用例图

A.序列图和协作图B用例图和活动图C类图和包图D用例图和构件图

在UML中,(D)把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包含的活动,它能够明确地表示哪些活动是由哪些对象完成的。

A组合活动B同步条C活动D泳道

在较高的抽象层次上,传统的程序流程图与UML中活动图最根本的区别在于(A)。

A程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B活动图不能提供循环控制结构,而程序流程图提供

C活动图不能表示并发活动,而程序流程图可以表示并发活动

D两者采用不同的图形符号系统

在关于用例的描述中,错误的是(A)

A用例将系统的功能范围分解成许多小的系统功能陈述

B一个用例代表了系统的一个单一的目标

C用例是一个行为上相关的步骤序列

D用例描述了系统与用户的交互

UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中(B)是面向对象系统建模中最常见的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择(A);当需要说明体系结构的静态实施视图时,应该选择(D)。

A构件图B类图C对象图D部署图

A构件图B协作图C状态图D部署图

A协作图B对象图C活动图D部署图

面向对象系统中有两种基本的复用方式:框架复用和类库复用。下列关于框架和类库的描述不正确的是()。

A框架是一个“半成品”的应用程序

B类库只包含一系列可被应用程序调用的类

C框架会为一个特定的目的实现一个基本的、可执行的架构

D 类库是框架的一种扩展形式

下列有关面向对象的叙述不正确的是(C)

A面向对象设计最根本的意图是适应需求变化

B应尽量针对接口编程,而不要针对实现编程

C 尽量使用继承而不是聚合,因为继承使得类间的耦合性最小

D 尽量使用已有的类库

当(D)时,用例是捕捉系统需求最好的选择。

A系统具有很少的用户B系统具有很少的接口C系统算法复杂,功能单一D系统有很多参与者

现有两个用例UC1和UC2,其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是(A)。

A Include

B Extend

C Generalize

D Call

下列关于面向对象的分析与设计的描述,正确的是(B)。

A面向对象设计描述软件要做什么

B面向对象分析不需要考虑技术和实现层面的细节

C面向对象分析的输入是面向对象设计的结果

D面向对象设计的结果是简单的分析模型

在UML的动态建模机制中,(C)描述了对象之间动态交互关系,还描述了交互对象之间的静态链接关系,即同时反映系统的动态和静态性。

A状态图B序列图C协作图D活动图

在UML的通用机制中,(A)用于把元素组织成组;(D)是系统中遵从一组接口规范且付诸实现的物理的、可替换的软件模块。

A包B类C接口D构件

A包B类C接口D构件

根据下图所示的UML类图可知,类Car和类Boat中的move()方法(B)。

A引用了类Transport的move()方法

B重置了类Transport的move()方法

C是类Transport的move()方法的聚集

D是类Transport的move()方法的泛化

在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅和Email);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、email、办公电话和职位)。根据上述描述,得到了如下图所示的UML类图,其中类“客户”的属性有(A);类“人”的属性有(B)。

A客户标识

B姓名、住宅电话、email

C姓名、住宅电话、办公电话、email、职位

D客户标识、办公电话、职位

A客户标识

B姓名、住宅电话、email

C姓名、住宅电话、办公电话、email、职位

D客户标识、办公电话、职位

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(https://www.360docs.net/doc/f710551384.html,pareTo(n2)); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: System.out.println(https://www.360docs.net/doc/f710551384.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.360docs.net/doc/f710551384.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

面向对象数据库技术的研究综述

面向对象数据库技术的研究综述 摘要:本文在提出传统数据库技术的不足及新应用领域需求的同时,介绍了面向对象数据库的特征与功能,并探讨了该技术面l临的一些问题;最后还对这一新技术的前景进行了展望。 关键词:面向对象;数据库技术;面向对象数据库 面向对象的思想首先出现在程序设计方法中。这一思想指导下产生的面向对象技术是一种按照人们对现实世界习惯的认识论思维方式来研究和模拟客观世界的方法学。它将现实世界中的任何事物均视为“对象”.将客观世界看成是由许多不同种类的对象构成。不同对象之间的相互联系和相互作用就构成了完整的客观世界。面向对象方法学所引入的对象、方法、消息、类、实例、继承性、封装性等一系列重要概念和良好机制为人们认识和模拟客观世界分析、设计和实现大型复杂系统奠定了良好的科学技术基础。 随着研究的不断深入和发展。面向对象技术已大大地超出了程序设计语言的范围。并渗透和应用到了诸多复杂的工程领域。并给软件工程、信息系统、工业设计与制造等带来了深远的影响。如面向对象的软件工程、面向对象的信息管理系统、面向对象的操作系统、面向对象的数据库系统、面

向对象的专家系统、面向对象的开发工具和面向对象的用户界面等的出现。其中,面向对象的数据库系统已成为当今数据库领域研究和发展的主要方向之一。 数据库技术与面向对象技术相结合已成为当前数据库技术研究、应用和发展的一个重要方向。将面向对象技术应用到数据库系统中。使数据库管理系统能够支持面向对象数据模型和数据库模式。这对于提高数据库系统模拟和操纵客观世界的能力,扩大数据库应用领域具有重要的意义:将面向对象技术应用到数据库的集成开发环境中。使数据库应用开发工具能够支持面向对象的开发方法井提供相应的开发手段,这对于提高应用软件的开发质量和扩大软件的应用推广是十分重要的。纵观数据库系统的发展,面向对象(00)技术的诞生为数据库的发展带来了希望。尽管目前面向对象数据库技术的实际发展与关系数据库系统相比,它的理论研究和形式化、标准化等方面还不完备和成熟。但是。从面向对象技术的前景和应用来看,面向对象数据库系统将代表着新一代数据库系统的发展方向。 一、新应用领域的需求及面向对象数据库的发展 从80年代以来,数据库技术在商业领域的巨大成功激发了其它领域对数据库技术需求的迅速增长。这些新的领域包括:CAD/CAM、CIM、CASE、OIS(办公信息系统)、GlS (地理信息系统)、知识库系统和实时系统等。新的应用领

西安交通大学研究生面向对象技术考试要点

1.绪论 软件=程序+数据+文档;软件工程=过程+方法+工具(过程:when、in what order方法:what);软件过程:是指一套关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关Artifacts(计划、文档、模型、编码、测试、手册等)组成。三种方法:UP(the unified process),The OPEN Process,OOSP(The Object-Oriented Software Process)。 2.软件工程模型回顾 软件过程的基本模型:线性顺序模型:瀑布模型(Waterfall);进化模型:原型法模型(Prototyping);基于构件的开发模型(Component-Based Development)。迭代模型:增量模型(Incremental);螺旋模型(Spiral)其他(Formal,RAD,4GT) 2.1瀑布模型(Royce,1970)历史最悠久、应用最广泛,虽然Royce 提出的瀑布模型支持反馈环,但大多数使用该过程模型的机构均将其视为严格线性的过程模型。瀑布模型的流程(无反馈环):分析→设计→编码→测试。 缺点:①实际项目很少按照该模型给出的流程进行。虽然线性容许迭代,但这种迭代是间接的,且极容易导致混乱。 ②客户常常很难清楚地给出所有需求,但该模型却要求非得如此,并且不能忍受项目开始阶段自然存在的不确定性。 ③客户必须有足够的耐心,因为软件产品的运行版本一直要等到项目开发周期的晚期才能得到。④如果直到检查运行程序时才发现大的错误,其后果很有可能是灾难性的。⑤线性顺序会导致“阻塞状态”,即等待时间> 开发时间。 2.2原型法模型(Bernard Boar,1984)帮助客户明确其需求(以增量方式进行)原型法模型的流程(环状)规格描述、开发和验证等阶段交织在一起;原型的本质:“口香糖+ 打包绳”。 优点①开发者与客户之间的误解,可通过对系统功能的“示范”而被识别出来。②客户在使用原型法模型期间,可以发现新的需求或找出未发觉的问题。③可大量节约开发成本,并可提高系统的应变能力。 缺点①原型只包含局部功能,难以掌握系统的整体动态状况。②许多机构认为在原型上花费过多资源是一种浪费,因为原型一般(二般呢?……) 无法成为真正的系统而必须抛弃。③维护工作较为困难。 2.3基于构件的开发(Component-Based Development,CBD)出发点:复用;基础:庞大的可复用软件构件库+ 构件的集成框架;CBD 的典型代表:统一软件开发过程(Unified Software Development Process,USDP)优点①能显著减少软件开发工作量(70%),从而能显著降低开发成本(84%) 和开发风险。②软件产品可以尽快交付客户。缺点①需求折衷无法回避,可能导致系统与客户实际需求背离。②当可复用构件的新版本不受开发者的掌控时,系统的演化能力将可能受损。未来:面向对象技术将使CBD 如虎添翼,因为面向对象技术能够开发出大量可复用的构件。 2.4增量模型:融合了瀑布模型的基本成分和原型法模型的进化特征;每一个线性序列产生软件的一个可发布的“增量”;任何增量的处理流程均可以结合原型法模型;第一个增量往往是核心的产品 增量模型vs.原型法模型:与原型法模型最大的不同在于,增量模型特别强调每一个增量均发布一个可操作产品,亦即早期的增量是最终产品的“可拆卸”版本。优点①不必等到最终产品完成,客户便可以从早期增量受益。②客户可以把早期增量作为原型,并为后期增量提出需求。③尽管某些增量可能存在问题,但是整个项目的风险较低。局限性①增量不能太大②每个增量均应具备一定功能③客户需求与增量大小之间的映射应匹配。发展:极限编程。 2.5螺旋模型(Boehm,1988)吸收了瀑布模型和原型法模型的优点;增加了风险分析;使软件的增量版本的快速开发成为可能。优点①使用原型实现作为降低风险的机制。②在系统开发初期,风险性高的部分首先被考虑,从而能及早发现错误、降低风险并减少开发成本。③在编写软件时,已有产品可供运行或“示范”。 缺点①客户对该模型的可控性常常产生疑虑。②开发者需要具备和掌握较多风险评估的知识和技术。③如果某个大风险未被及时考虑,会给后续开发造成困难。 2.6形式化模型(Formal)的局限性:开发很费时、很昂贵。具有使用形式化模型所必需背景的开发者寥若晨星,尚需多方面的培训。当客户对形式化模型一无所知时,开发者无法将该模型作为和客户进行通信的机制。 2.7快速应用开发(RAD)强调极短的开发周期;是线性顺序模型的一个“高速”变种;与增量模型具有相似性;通过使用基于构件的建造方法实现快速开发;RAD主要用于信息系统开发。缺点①对于大型软件开发项目必须有足够的人力资源支持②要求客户和开发者均应在短的时间框架内完成各自相应的快速活动,任何一方爽约均会导致项目失败③当系统难以模块化时,或者当高性能是系统的主要指标时,RAD 将可能失效④RAD不适合技术风险高的情况2.8第四代技术(4GT)是多种软件过程模型的综合;包含了一系列软件工具;开发者在更高抽象层次上描述软件规格;软件工具根据开发者的软件规格描述自动生成源代码。优点①显著缩短了软件的开发时间②显著提高了建造软件的生产率。缺点①目前的4GT 工具易用性不够高②目前的4GT 工具生成的源代码太低效③使用4GT 工具开发的大型软件产品的可维护性令人生疑。未来:4GT与基于构件的模型相结合后,将可能成为软件开发的主流方法。

面向对象的数据库技术

面向对象的数据库技术 肖阳辉 摘要:面向对象的数据库极有可能是数据库发展的方向,关系型数据库已显得力不从心,面向对象技术已经渗透到了数据库领域,把面向对象的方法和数据库技术结合起来可以使数据库系统的分析、设计最大程度地与人们对客观世界的认识相一致。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。论文关键词:关,键,词,数据库,面向对象,技术 随着应用的日趋复杂和智能化,传统的关系数据库的缺点一点点的暴露出来,人们迫切希望产生一种新的数据库解决方案来适应这些复杂需求。一种新的解决方案呼之欲出。而这个解决方案极有可能就是面向对象数据库技术。面向对象数据库的技术机理并不高深,但它的设计思想却极有价值。在传统的面向对象应用开发中,由于传统的关系数据库开发风格完全不同于面向对象风格,使得许多程序员难以从复杂的SQL编程中解脱出来(尽管已经有一些成熟的ORM技术框架,如Hibernate,但程序员仍需要做大量的数据库代码工作),从而也无法从实质上提高工作效率。 1、面向对象数据库技术概述 面向对象是当前计算机界关心的重点,面向对象是一种新的方法学,也是一种认知方法学。它是一种支持模块化设计和软件重用的实际可行的编程方法,它把程序间的逻辑活动建立在对象间的消息传递之上,且设计上更加符合现实世界,更加自然,所以面向对象方法得到了更广泛的应用。 面向对象数据库系统是为了满足新的数据库应用需要而产生的新一代数据库系统。在数据库中提供面向对象的技术是为了满足特定应用的需要。随着许多基本设计应用(如MACD和ECAD)中的数据库向面向对象数据库的过渡,面向对象思想也逐渐延伸到其它涉及复杂数据的应用中,其中包括辅助软件工程(CASE)、计算机辅助印刷(CAP)和材料需求计划(MRP)。这些应用如同设计应用一样在程序设计方面和数据类型方面都是数据密集型的,它们需要识别于类型关系的存储技术,并能对相近数据备份进行调整。 还有许多应用要求多媒体数据库。它们要求以集成方式和文本或图形信息一起处理关系数据,这些应用包括高级办公室系统的其它文档管理系统。 面向对象数据库从面向程序设计语言的扩充着手使之成为基于面向对象程序设计语言的面向对象数据库。例如:ONTOS、ORION等,它们均是C++的扩充,熟悉C++的人均能很方便地掌握并使用这类系统。 面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能。在商业应用中对关系模型的面向对象扩展着重于性能优化,处理各种环境的对象的物理表示的优化和增加SQL模型以赋予面向对象特征。如UNISQL、O2等,它们均具有关系数据库的基本功能,采用类似于SQL的语言,用户很容易掌握。 2.面向对象数据库的优点 面向对象数据库是数据库技术与面向对象程序设计方法相结合的产物,由于同是面向对象方法学,所以其具有了所有面向对象的优点。同时,由于数据库主要操作的是集合(而不是单个数据),所以其又具有自身的特点和优点。 (1)提高数据库开发效率

UML面向对象技术期末复习整理

UML面向对象技术期末复习整理 第一章 1、UML支撑软件整个生命周期 2、对象:面向对象系统的基本构造块,是一些相关的变量和方法的软件集 3、事件:指一种由系统预先定义而由用户或系统发出的动作 4、面向对象的基本特征:抽象,封装,继承,多态 5、模型:对现实客观世界的形状或状态的抽象模拟和简化 6、UML定义:是对软件密集系统进行可视化建模的一种语言,也是为面向对象开发系统的产品进行说明、可视化、构造和编制问的一种标准语言 7、UML可贯穿软件开发周期的每一阶段,最适用于数据建模、业务建模、对象建模、组件建模 填空题 1、统一建模语言UML是绘制软件蓝图的标准工具语言,可以对软件系统产品进 行说明、可视化、构造和编制文档 2、UML在实际软件项目中,可以用于构造各种类型系统的业务模型和软件模 型。 3、软件的开发模式有瀑布模型、喷泉模型、基于构件的开发模型和XP方法。 4、面向对象程序的三大要素是多态、封装和继承。 5、瀑布模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的 问题。 选择题 1、对象程序的基本特征是:抽象、封装、继承、多态 2、类包含的要素有:名字、属性、操作 3、下列关于类与对象的关系说法不正确的是:有些对象是不能被抽象类的 4、面向对象方法中的继承机制是子类可以自动地拥有(复制)父类全部属性和 操作 5、建立对象的动态模型一般包含的步骤有:准备脚本、确定事件、准备事件 跟踪表、构造状态图 第二章 1、UML的概念和模型分为静态结构、动态行为、实现构造、模型组织和扩展机制这几个机制 2、面向对象的事物分为:结构事物、行为事物、分组事物、注释事物

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变 . B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果 C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量 . 正确答案: B 2、选出下面不能作为void Med(i nt x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案: B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法 . B. 定义了抽象方法的类必定是抽象类 . C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案: A 4 、 Circle 是 GeometricObject 的子类。如果有语句: Circle circle = new Circle(1);GeometricObject object = new GeometricObject(); 那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject) C. (circle in sta nceof Circle)

D. (object in sta nceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字 static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如下,其中speedUp()方法实现加速功能,速度上限为240 km/h ; speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速 5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

面向对象技术(本)阶段练习四资料

《面向对象技术(本)》课程第四阶段练习题 、填充题 1超类的private成员不能被子类继承。 2.在声明一个类变量时,前面必须要加上static修饰符。 3. import java.util.*;语句可导入Java的实用包中所有的类。 4.方法的覆盖是后期绑定,方法的重载是前期绑定。 5.写出一个表达式:输出角度300的余弦值Math.cos(30*3.14/I80。 二、选择题 旦1.找出有关类的正确说法。 a. 类具有封装性,所以类的数据是不能被访问的。 b. 类具有封装性,但可以通过类的公共接口访问类 中的数据。 c. 声明一个类时,必须用Public修饰符。 d. 每个类中,必须有main方法,否则程序无法运 行。 e. A 2.将类的成员的访问权限设置为默认的,则该成员能被 a. 同一包中的类访问 b. 其它包中的类访问 c. 所有的类访问 d. 所有的类的子类访问

C 3.下面哪一种是正确的方法重栽 a. int fun (i nt afloat b{} float fun (i nt a,float b{} b. float fun (i nt a,float b{} float fun (i nt x,float y{} c. float fun( float a{} float fun (float a,float b{} d. flaot fun 1(i nt a,float b{} float fun 2(i nt a,float b{} D 4.下面关于继承的说法那个是正确的 a. 超类的对象就是子类的对象。 b. 一个类可以有几个超类。 c. 一个类只能有一个子类。 d. 一个类只能有一个超类。 C 5.下面关于多态性的说法那个是正确的 a. 一个类中,不能有同名的方法。 b. 子类中不能有和父类中同名的方法。 c. 子类中可以有和父类中同名且参数相同的方法。 d. 多态性就是方法的名字可以一样,但返回的类型必须不一样。 三、简答题 1. 什么是类,什么是对象? 在面向对象的程序设计语言中,类是一种特殊属性类型,类可以看作具有共同属性和行为的

面向对象建模技术-复习试卷

《面向对象建模技术》期末考试试题(A卷) 考试时间:2014年11月9日班级学号姓名 ?请将答案写在答题册上,写明题号,不必抄题,字迹工整、清晰; ?请在答题册和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题册和草纸 一并交上来。 一、选择题,每题1分,共计25分。每个括号里的数字为该空的题号,从该题号对应的备 UML中有多种类型的图,其中,(1)对系统的使用方式进行分类,(2)显示了类及其相互关系,(3)显示人或对象的活动,其方式类似于流程图,通信(协作)图显示在某种情况下对象之间发送的消息,(4)与通信(协作)图类似,但强调的是顺序而不是连接。 (1) A. 用例图 B. 顺序图 C. 类图 D. 活动图 (2) A. 用例图 B. 顺序图 C. 类图 D. 活动图 (3) A. 用例图 B. 顺序图 C. 类图 D. 活动图 (4) A. 用例图 B. 顺序图 C. 类图 D. 活动图 下图属于UML中的(5),其中,AccountManagement需要(6)。 (5) A. 组件图 B. 部署图 C. 类图 D. 对象图 (6) A. 实现IdentityVerifier接口并被CreditCardServices调用 B. 调用CreditCardServices实现的IdentiyVerifier接口 C. 实现IdentityVerifier接口并被Logger调用 D. 调用Logger实现的IdentityVerifier接口

下列对状态图描述不正确的是(7) (7) A. 状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为 B. 状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可与说 明事件如何随着时间的推移来影响这些状态 C. 状态图的主要目的是描述对象创建和撤销的过程中资源的不同状态,有利于开发人员 提高开发效率 D. 状态图描述了一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处状 态对不同的事件作出反应 在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面哪个不是“Actor”(8 ) (8) A. 用户 B. A TM取款机 C. ATM取款机管理员 D. 取款 (9) 反映类、接口或构件的内部协作,用于表达运行时的体系结构、使用模式及关系。(9)A. composite structure diagram B. deployment diagram C. use case diagram D. sequence diagram 在RSA中包含很多模型模板,供开发者在系统建模时选用。(10)不是RSA提供的模型模板。 (10)A. Analysis Model B. Service Design Model C. XSD Model D. Eclipse plug-in Model 在UML的各种视图中,(11)显示外部参与者观察到的系统功能;(12)从系统的静态结构和动态行为角度显示系统内部如何实现系统的功能;(13)显示的是源代码以及实际执行代码的组织结构。在 ROSE中,时序图和协作图(或通信图)通常建立在(14)下的use case realization包中。 (11)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(12)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(13)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图(14)A. 用例视图 B. 进程视图 C. 实现视图 D. 逻辑视图 在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(15)。 a b c 15.供选择的答案: A. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对象、实体对象、边界对象 D. 边界对象、控制对象、实体对象 在建立系统的用例模型时,首先应该确定系统的参与者。以下问题中,对于确定参与者没有用处的是(16)。 16.供选择的答案: A. 谁是系统的主要用户,即谁使用系统的主要功能

面向对象数据库技术复习资料1

一、单选题(本大题共20小题,每小题2分,共40分) (请将最符合题意的答案代码填写在相应的题号括号内,错选、多选或未选均无分。) 1.在当前表中查询,若无满足条件的记录,下列函数中,其值为.T.的是( )。 A)BOF() B)FOUND()C)EOF()D)RECNO() 2.一数据库名为学生,要想打开该数据库,应使用命令( )。 A)OPEN 学生B)OPEN DATABASE 学生C)USE DATABASE 学生D)USE 学生 3.在下列的数据类型中,默认值为.F.的是( )。 A)数值型B)字符型C)逻辑型D)日期型 4.在Visual FoxPro中,调用表设计器建立数据库表“学生.DBF”的命令是( )。 A)MODIFY STRUCTURE 学生B)MODIFY COMMAND 学生 C)CREATE 学生D)CREATE TABLE 学生 5.下列操作中,不能用MODIFY STRUCTURE命令实现的是( )。 A)为表增加字段B)删除表中的某些字段 C)对表的字段名进行修改D)对记录数据进行修改 6.在Visual FoxPro中,下面关于自由表的叙述正确的是( )。 A)自由表和数据库表是完全相同的B)自由表不可以加入到数据库中 C)自由表不能建立字段级规则和约束D)自由表不能建立候选索引。 7.执行命令LIST NEXT 1后,记录指针的位置指向( )。 A)下一条记录B)原来的记录C)首记录D)尾记录 8.下列命令中,能够进行条件定位的命令是( )。 A)SKIP B)GO C)LOCATE D)SEEK 9.不能向表文件增加记录的命令是( )。 A)BROWSE B)APPEND C)INSERT D)REPLACE 10.对表文件中的记录进行修改,不需要交互操作的命令是( )。 A)EDIT B)CHANGE C)REPLACE D)BROWSE 11.在Visual FoxPro中,建立索引的作用之一是( )。 A)节省存储空间B)便于管理C)提高查询速度D)提高查询速度和更新速度12.在VFP中,在两个表的主索引之间建立的联系是( )。 A)一对一联系B)一对多联系 C)一对一联系和一对多联系都可以D)以上都不正确 13.设职工表和按“工作日期”索引文件已经打开,要把记录指针定位到工作刚好满90天的职工,应当使用命令( )。 A)FIND DATE()-90B)SEEK DATE()+90 C)FIND DATE()+90D)SEEK DATE()-90 14.Visual FoxPro参照完整性规则不包括( )。 A)更新规则B)删除规则C)查询规则D)插入规则 15.下列命令在不带任何子句(短语)时,可对当前表中所有记录操作的命令是( )。 A)DISPLAY B)RECALL C)DELETE D)COUNT 16.如果成功的执行了命令H—>KCH,M—>KCH,则说明( )。 A)两个KCH都是内存变量 B)前一个KCH是内存变量,后一个KCH是字段变量 C)两个KCH都是字段变量 D)前一个KCH是字段变量,后一个KCH是内存变量 17.Visual FoxPro中,使用SET RELATION命令可以建立两个表之间的联系,这种联系是( )。 A)永久联系B)临时联系或永久联系C)临时联系D)普通联系 18.Visual FoxPro在SQL方面不支持( )。 A)数据定义功能B)数据查询功能C)数据操纵功能D)数据控制功 19.在SQL查询时,用WHERE子句(短语)指出的是( )。 A)查询目标B)查询结果C)查询条件D)查询视图 20.某商场的销售数据库有如下表:部门表(部门号,部门名称)和商品表(部门号,商品 号,商品名称,单价,数量,产地)。下面SQL语句的查询结果是( )。 SELECT部门表.部门号,部门名称,SUM(单价*数量) FROM部门表,商品表; WHERE 部门表.部门号=商品表.部门号GROUP BY 部门表.部门号 A)各部门商品数量合计B)各部门商品金额合计 C)所有商品金额合计D)各部门商品金额平均值 二、多选题(本大题共5小题,每小题3分,共15分) (选对1个得1分,全对得3分,多选不得分;将最符合题意的答案直接填进括号内)

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

《面向对象技术》课程教学大纲

《面向对象技术》课程教学大纲 课程编号:20411101 总学时数:48 总学分数:3 课程性质:必修课程 适用专业:计算机科学与技术 一、课程的任务和基本要求 该课程是计算机科学与技术专业的专业基础课程。本课程的基本要求是掌握面向对象程序设计的基本原理、概念和方法;掌握C++语言的基本知识,包括类的定义、继承,对象的创建、使用、销毁等;掌握基本的面向对象程序设计过程和技巧,具备一定的面向对象程序设计能力,为后继课程打下基础。 二、基本内容和要求 1、面向对象技术概要 教学内容:概括地面向对象技术,介绍C++语言和C语言的差异。 基本要求: (1)了解面向对象技术特点 (2)掌握C++ 语言的输入、输出 (3)掌握C++ 语言的空间申请和释放 (4)了解C++ 语言的对象引用的含义 2、类的定义 教学内容:介绍C++语言中最基本的类定义,数据成员和函数成员,三种权限区域。 基本要求: (1)理解类和对象的概念 (2)掌握类构造函数和析构函数的定义方法和作用 (3)掌握对象的定义及初始化方法 (4)掌握类成员函数和内联函数的定义方法 (5)掌握函数重载的方法 (6)熟悉运算符的重载方法 3、类的派生与继承 教学内容:介绍类与类之间的派生关系,派生类的成员继承和存取权限,函数多态基本要求: (1)了解派生类的定义方法 (2)掌握派生类中继承成员的存取关系 (3)掌握派生类构造函数的定义与执行顺序 (4)了解虚函数和抽象类的作用 (5)了解编译多态和运行多态 4、类的友元和聚合 教学内容:不同类间引用的权限,封装与效率的关系,静态数据成员 基本要求:

(1)熟悉类的友元及应用 (2)了解类的封装和聚合 (3)熟悉类静态数据成员的作用与应用 5、面向对象的程序设计 教学内容:面向对象设计的思想、对象的生存期、对象的永久化和对象的传输。 基本要求: (1)熟悉面向对象程序设计的思想 (2)了解对象的创建过程和销毁过程 (3)掌握对象的永久化的操作方法 (4)熟悉对象传输的含义和实现方式 6、模板 教学内容:介绍函数模板和模板函数,类模板和模板类,STL的使用 基本要求: (1)熟悉函数模板 (2)熟悉类模板 (3)了解利用模板的使用方法 (4)熟悉STL的应用 7、异常处理 教学内容:异常处理的内容。 基本要求: (1)了解异常处理的目的 (2)熟悉异常处理的的基本形式 (3)了解异常处理的几种应用方式 三、实践环节和要求 通过由浅入深、循序渐进地练习,使学生通过上机来验证课堂教学的理论,全面了解面向对象技术的基本方法和编程技巧,学会设计一些简单的应用程序。 实验环节类型:上机 实验环节学时:16 1、含有类的C++程序设计(2学时) 上机内容:类的定义与应用。 2、类的继承与派生(2学时) 上机内容:派生类的定义与应用。 3、抽象类与重载(2学时) 上机内容:抽象类与重载。 4、友元与静态数据的应用(2学时) 上机内容:友元与静态数据的应用。 5、面向对象程序设计(4学时) 上机内容:使用面向对象技术设计应用程序。 6、模板的应用(4学时) 上机内容:类模板和类函数的应用。 四、教学时数分配 理论: 32 实验:上机:16 其它:

oop技术:面向对象技术复习思考题.doc

OOP技术:《面向对象技术》复习思考题 %1.填空题 1.在C++中,函数的参数有两种传逆方式,它们是值传逆和I 。当一个成 员函数被调用时,该成员函数的I 指向调用它的对象。 2.拷贝构造函数使用I 作为参数初始化创建中的对象。 3.在公有继承的情况下,基类数据成员在派生类中的访问权限I o 4.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到I 构 造函数,否则应用程序会产生一个编译错误。 5.静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 6.设"in ta=3,b=4,c=5;”,表达式”(a+b) >c&&b! =c”的值是I ° 7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型 8.动态联编要满足两个条件,它们是I 、I o 9.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为 I ,定义该类至少具有一个I 0 10.举出C++中两神用户日定义的数据类型:I 、I 。 11.C++中没有字符串类型,字符串是通过I 来表示的,每一个字符串 都有一个结尾字符I 。 12.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向 对象程序设计的I 特性。 13.在C++中,构造派生类对象时,总是先从I 的初始化开始的。 14.类是用户定义的类型,具有类类型的变量称作I o 15.在5个运算符”*(乘号)、&&、v=、!、!= ”中,优先级由高到低的顺序是 16.在C++中,类定义一般用class关键字,不过用struct关键字也可以定义类, 它们定义类的区别在于I 。 17.静态的成员函数没有隐含的I ,所以,它们只能访问静态的数据成 员。

《面向对象技术与方法》试卷

一、单选题(本大题共22个小题,每小题2分,共44分) 第1题.javac的作用是: A)将源程序编译成字节码B)将字节码编译成源程序 C)解释执行Java字节码D)调试Java代码 答案:A 第2题.下列程序片断的执行,说法正确的是 1 public class test 2 { 3 public static void main(String args[]) 4 { 5 byte b=100; 6 int i=b; 7 int a=2000; 8 b=a; 9 System.out.println(b); 10 } 11 } A)b的值为100 B)b的值为2000 C)第六行出错D)第八行出错 答案: D 第3题.下列数组定义及赋值,错误的是 A)int intArray[]; B)intArray=new int[3]; intArray[1]=1; intArray[2]=2; intArray[3]=3; C)int a[]={1,2,3,4,5}; D)int[][]=new int[2][]; a[0]=new int[3]; a[1]=new int[3]; 答案: B 第4题.类ABC定义如下: 1.public class ABC{ 2.public int max( int a, int b) { } 3. 4.} 将以下哪个方法插入行3是不合法的。 A)public float max(float a, float b, float c){ } B)public int max (int c, int d){ } C)public float max(float a, float b){ } D)private int max(int a, int b, int c){ } 答案: B 第5题.下列说法正确的是_____ A)java中包的主要作用是实现跨平台功能 B)package语句只能放在import语句后面 C)包(package)由一组类(class)和接口(interface)组成 D)可以用#include关键词来标明来自其它包中的类; 答案: C 第6题.以下哪个接口的定义是正确的? A)interface B{ void print() { } ;} B)abstract interface B{ void print() ;}

java语言与面向对象技术复习资料

一、单项选择题。 1、下列哪个是Java应用程序主类中正确的main方法?() A.public void main(String args[]) B.static void main(String args[]) C.public static void Main(String args[]) D.public static void main(String args[]) 2、下列哪项是正确的float变量的声明?() A.float foo=-1; B.float foo=1.0; C.float foo=2.02f; D.float foo=0x0123; 3、对于int a[]=new int[3];下列哪个叙述是错误的?() A.a.length的值是3。B.a[1]的值是1。 C.a[0]的值是0。D.a[a.length-1]的值等于a[2]的值。 4、下列哪个叙述是正确的?() A.5.0/2+10的结果是double型数据。 B.(int)5.8+1.0的结果是int型数据。 C.’苹’+’果’的结果是char型数据。 D.(short)10+’a’的结果是short型数据。 5、对于下列Hello类,哪个叙述是正确的?() A.Hello类有2个构造方法。 B.Hello类的int Hello()方法是错误的方法。 C.Hello类没有构造方法。 D.Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。class Hello { Hello (int m) { } int Hello() { Return 20; } hello() { } } 6、下列哪个叙述是正确的?() A.成员变量的名字不可以和局部变量的名字相同。 B.方法的参数的名字可以和方法中声明的局部变量的名字相同。 C.成员变量没有默认值。 D.局部变量没有默认值。 7、下列哪个叙述是正确的?()

OOP技术:面向对象技术1-10章习题

OOP技术:习题 第1章习题 1. 什么是面向对象技术? 2. 面向对象与面向过程程序设计有什么不同? 3. 面向对象技术有哪些优点? 4. 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 5. 为什么要应用继承机制? 6. C++对多态性的支持体现在哪些方面? 7. 目前常用的面向对象程序设计语言有何异同? 8. 什么是.NET? 第2章习题 1. 写出下面程序的运行结果。 #include void main() { int* a; int* &p=a; int b=10; p=&b; cout<<*a< void main() { int iarray[10]={0,2,4,6,8,10,12,14,16,18}; int sum=0; int* iptr=iarray; for(int i=0;i<10;i++) { sum+=*iptr; iptr++; } cout<<"sum is"<

} 3. 写出下面程序的运行结果。 #include int m=8; int add3(int x,int y=7,int z=m) { return x+y+z; } void main() { int a=1,b=2,c=3; cout<

相关文档
最新文档