面向对象参考题给学生.docx

上传人:b****1 文档编号:14722276 上传时间:2023-06-26 格式:DOCX 页数:25 大小:48.19KB
下载 相关 举报
面向对象参考题给学生.docx_第1页
第1页 / 共25页
面向对象参考题给学生.docx_第2页
第2页 / 共25页
面向对象参考题给学生.docx_第3页
第3页 / 共25页
面向对象参考题给学生.docx_第4页
第4页 / 共25页
面向对象参考题给学生.docx_第5页
第5页 / 共25页
面向对象参考题给学生.docx_第6页
第6页 / 共25页
面向对象参考题给学生.docx_第7页
第7页 / 共25页
面向对象参考题给学生.docx_第8页
第8页 / 共25页
面向对象参考题给学生.docx_第9页
第9页 / 共25页
面向对象参考题给学生.docx_第10页
第10页 / 共25页
面向对象参考题给学生.docx_第11页
第11页 / 共25页
面向对象参考题给学生.docx_第12页
第12页 / 共25页
面向对象参考题给学生.docx_第13页
第13页 / 共25页
面向对象参考题给学生.docx_第14页
第14页 / 共25页
面向对象参考题给学生.docx_第15页
第15页 / 共25页
面向对象参考题给学生.docx_第16页
第16页 / 共25页
面向对象参考题给学生.docx_第17页
第17页 / 共25页
面向对象参考题给学生.docx_第18页
第18页 / 共25页
面向对象参考题给学生.docx_第19页
第19页 / 共25页
面向对象参考题给学生.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象参考题给学生.docx

《面向对象参考题给学生.docx》由会员分享,可在线阅读,更多相关《面向对象参考题给学生.docx(25页珍藏版)》请在冰点文库上搜索。

面向对象参考题给学生.docx

面向对象参考题给学生

1、面向对象的核心要素:

(7个)

2、封装把类构成那两个部分,又提供了哪两种保护

3、消息提供了服务的哪四个方面

5、下面是一个用例描述的片断:

UseCase:

WithdrawCash(提取现金)

参与者:

Customer

主事件流:

1.储户插入ATM卡,并键入密码。

2.储户按“Withdrawal”按钮,并键入取款数目。

3.储户取走现金、ATM卡并拿走收据。

4.储户离开。

上述描述中存在的问题:

只描述了参与者的动作序列,没有描述系统的行为。

改进的描述:

7、什么是场景,一个用例可以有多少个主要场景和次要场景?

8、按照耦合度从高到低,说明类之间的关系有哪些?

9、标准类图中成员四个可见性分别用什么表示?

10、associationaggregationgeneralizationdependency分别代表什么关系

11、给出下面带关联类类图的另一种普通类图表示。

12、给出下面带限定关联的普通类图表示

13、说明类图的抽象层次,并说明三个层次都在什么时候使用?

14、说明OCP原则的含义,并说明如何才能做到OCP?

开闭原则OCP(Open-ClosePrinciple)被称作是OOD的基石,是OOD最重要的原则之一。

目前,对OCP的实现,主要的一条就是抽象,就是我们常常挂在嘴边的要面向抽象(接口)。

把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规定出所有的具体类必须提供的方法的特征作为系统设计的抽象层,这个抽象层要预见所有可能的扩展,从而使得在任何扩展情况下,系统的抽象层不需修改;同时由于可以从抽象层导出一个或多个新的具体类可改变系统的行为,因此对于可变的部分,系统设计对扩展是开放的。

15、HP类、Epson类、Canon类分别表示不同的打印机,Output类与3个类关联。

运行时Output类根据当前与系统相连的哪种类型的打印机而分别使用不同类中的print()方法。

Output类中会有if…else或switch…case之类的分支结构来判断与系统相连的是哪种类型的打印机。

按照针对接口编成的方法和OCP法则,画出另一种解决方案的类图,使得再增加一个LQ打印机时不需要修改现有的类的实现。

16、叙述接口分离原则的含义。

17、叙述针对接口编程的优缺点。

18、叙述描述设计模式的四个要素。

19、应用单子模式,设计类Singleton,使其在整个程序中只能有一个实例。

画出类图写出代码。

20、说明在全局分析中,选定某个用例作为分析局部的基本原则是什么?

21、简要说明分析类中实体类、控制类、边界类的作用。

22、说明边界类的应用场景。

23、画出求解ax2+bx+c=0的活动图。

24、画出判断某年是否为闰年的活动图。

25、画出求三个数中求最大值的活动图。

26、说明活动图中泳道的作用。

27、如图,包A依赖包B(因为包A中的类U使用了包B中的类X);反过来,包B又依赖包A(因为包B中的类Y使用了包A中的类V)包A,包B之间就形成了一种循环依赖。

如何消除?

28、UML中建模软件、硬件的物理结构的两个图是什么图?

29、RUP软件开发周期中有9个核心工作流,都是什么?

30、RUP的四个阶段?

31、说明RUP分析工作流中提交的五个制品。

32、各用一句话写出全局分析、局部分析、全局设计、局部设计、细节设计的侧重点?

33、经典的三层体系结构中表示层与领域层的职责,表示层与领域层的可见性

34、RUP统一过程的核心思想是什么?

35、RationalRose中的建模的四个视图是什么?

36、面向对象分析与设计方法与面向功能(结构化)分析与设计方法的区别是什么?

37、

选择题

(1)用例(usecase)用来描述系统在对事件做出响应时所采取的行动。

用例之间是具有相关性的。

在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。

那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是()关系。

A.包含(include)B.扩展(extend)

C.分类(classification)D.聚集(aggregation)

(2)用UML建立业务模型是理解企业业务过程的第一步。

业务人员扮演业务中的角色及其交互方式,例如航空公司的售票员是业务人员,电话售票员也是业务人员,他们之间的关系是

(1)。

在UML中,用( 2 )  企业业务的工作流。

这种图显示工作流的步骤、决策点,以及完成每一步骤的角色和对象。

 1、A.关联关系(Association)B.依赖关系(Dependency)

C.聚集关系(Aggregation)D.泛化/概括关系(Generalization)

 2、A.活动图(activitydiagram)B.业务图(businessdiagram)

 C.用例图(usecasediagram)D.交互图(interactiondiagram)

(3)一个设计好的OO系统具有

   A.低内聚、低耦合的特征  B.高内聚、低耦合的特征

 C.高内聚、高耦合的特征  D.低内聚、高耦合的特征

(11)在MVC模式中,(

(1))主要表现用户界面,(

(2))用来描述核心业务逻辑。

(1)A.视图  B.模型 C.控制器  D.视图和控制器

(2)A.视图  B.模型 C.控制器  D.视图和控制器

1、以下不是设计模式的好处的是:

A.它们为设计提供了沟通的通用语言。

B.它们为现实世界的问题提供了解决方法。

C.它们传播以前已经是成熟的设计。

D.它们为新出现的所有问题提供了解决方法。

2、哪一种模式限制了创建类的实例数量

A.命令模式B.工厂方法模式C.策略模式D.单例模式

3、处理下面何种特性的类时,迭代器模式才会有用?

B

A.动态B.聚集C.单例D.规模小

4、命令模式对象的信息和信息的接收者。

B

A.分拆B.封装C.处理D.分离连接

5、UML中扩展机制之一约束(Constraints)是用下面哪种方式表示的?

B

A.只能用[textstring]这种方式

B.只能用{textstring}这种方式

C.只能用(textstring)这种方式

D.上面任何一种方式都可以

6、为了描述和理解系统中的控制机制,如为了描述一个设备控制器在不同情况下所要完成的动作,下面几个图中哪个是最有用的?

C

A.交互图B.活动图C.状态图D.类图

7、顺序图(sequencediagram)和交互图(interactiondiagram)的关系类似于下面哪种类型的关系。

C

A.类和对象B.类和参与者(actor)

C.Java语言和高级程序设计语言D.UML和Java

9、类和对象的关系类似于下面哪种类型的关系。

A

A.关联(association)和链(link)B.用例(Usecase)和参与者(actor)

C.包(package)和类图(classdiagram)D.聚集(aggregation)和组合(composition)

10、下面哪个图符表示UML中的实现关系?

B

A.

B.

C.

D.

11.下面哪个图符表示UML中的继承关系?

D

12.下面哪个图符表示UML中的依赖关系?

C

13.在课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:

Course)和方法remove(c:

Course),则类CourseSchedule和类Course之间的关系是:

A.泛化(generalization)关系B.组合(composition)关系

C.依赖(dependency)关系D.包含(include)关系

14.在课程注册系统中,下面哪组方法名和类名的命名是最合理的?

(每组中前面的为方法名,后面的为类名)

A.register(),VectorStudentB.register(),Student

C.reg(),VectorStudentD.reg(),student

15.如下图所示,类PaymentController必须实现哪些方法?

A.create,process,reserve,acknowledge,commit

B.process,reserve,acknowledge,commit

C.payment,save

D.payment,create,save

16.计算机(Computer)由中央处理器、内存、硬盘、显示器、键盘、鼠标等组成。

那么Computer类和其他类(CPU,RAM,HardDisk,Monitor,Keyboard,Mouse)之间的关系是:

A.泛化关系B.实现关系

C.包含关系D.聚集关系

18.参考下图,下面哪种叙述是正确的?

A.Component是类,ImageObserver是状态,Component实现了ImageObserver。

B.Component是类,ImageObserver是接口,Component和ImageObserver是关联关系。

C.Component是类,ImageObserver是状态,Component和ImageObserver是关联关系。

D.Component是类,ImageObserver是接口,Component实现了ImageObserver。

(4)用例(usecase)用来描述系统在对事件做出响应时所采取的行动。

用例之间是具有相关性的。

在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。

那么,用例“创建新订单”、“更新订单”与用例“核查客户帐号”之间是()关系。

A.包含(include)B.扩展(extend)

C.分类(classification)D.聚集(aggregation)

(5)用UML建立业务模型是理解企业业务过程的第一步。

业务人员扮演业务中的角色及其交互方式,例如航空公司的售票员是业务人员,电话售票员也是业务人员,他们之间的关系是

(1)。

在UML中,用( 2 )  企业业务的工作流。

这种图显示工作流的步骤、决策点,以及完成每一步骤的角色和对象。

 1、A.关联关系(Association)B.依赖关系(Dependency)

C.聚集关系(Aggregation)D.泛化/概括关系(Generalization)

 2、A.活动图(activitydiagram)B.业务图(businessdiagram)

C.用例图(usecasediagram)D.交互图(interactiondiagram)

(6)在UML提供的图中,( 1 )用于描述系统与外部系统及用户之间的交互;( 2 )用于按时间顺序描述对象间交互。

1、A.用例图  B.类图  C.对象图  D.部署图

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

(7)以下不是设计模式的益处的是:

A.它们为设计提供了沟通的通用语言。

B.它们为现实世界的问题提供了解决方法。

C.它们传播以前已经是成熟的设计。

D.它们为新出现的所有问题提供了解决方法。

(8)程序设计语言提供了基本类型及其相关操作,而(  )则允许开发者定义一种新的类型及其相关的操作。

A.对象  B.实例 C.类  D.引用

(9)(  )表示了对象间的“is-a”的关系。

   A.组合  B.引用 C.聚合  D.继承

(10)( 1 )反映了类间的一种层次关系,而

(2)反映了一种整体与部分的关系。

  1、A.继承  B.组合 C.封装  D.多态

  2、A.继承  B.组合 C.封装  D.多态

(21)在某个信息系统中,存在如下的业务陈述:

①一个客户提交0个或多个订单;②一个订单由一个且仅由一个客户提交。

系统中存在两个类:

“客户”类和“订单”类,对应每个“订单”类的实例,存在(  )个“客户”类的实例;对应每个“客户”类的实例,存在(  )个“订单”类的实例。

A.0个  B.1个  C.1个或多个  D.0个或多个

(12)采用UML进行建模过程中,类图是系统的一种静态视图,用(  )可以明确表示类之间的整体/部分关系。

  A.继承关系  B.聚合关系 C.依赖关系  D.泛化关系

(14)封装是指把对象的()结合在一起,组成一个独立的对象。

A.属性和操作  B.信息流 C.消息和事件  D.数据的集合

(15)封装是一种()技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开。

A.工程化  B.系统维护 C.信息隐蔽  D.产生对象

(16)使得在多个类中能够定义同一个操作或属性名,并在每个类中有不同的实现的一种方法是()。

A.继承  B.多态性 C.约束  D.接口

(17)UML的()模型图由活动图、顺序图、状态图和合成图组成。

A.用例  B.静态 C.动态  D.系统

(18)在UML的需求分析建模中,()模型图必须与用户反复交流并加以确认。

A.配置  B.用例 C.包  D.动态

(19)UML客户需求分析产生的用例模型描述了系统的()。

A.状态  B.体系结构 C.静态模型  D.功能需求

(20)类和对象都有属性,它们的差别是类描述了属性的类型,而对象的属性必须有()。

A.正负号  B.动作 C.具体值  D.私有成员

(21)设计模式在面向对象系统设计中是()得一种形式。

A.软件调用  B.设计方法 C.子系统  D.软件复用

(22)顺序图描述()对象之间消息的传递顺序。

A.某个  B.单个 C.一个类产生的  D.一组

(23)顺序图和协作图建立了UML面向对象开发过程中的对象动态()模型。

A.交互  B.状态 C.体系结构  D.软件复用

(24)状态图可以表现()在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引起的动作。

A.一组对象  B.一个对象 C.多个参与者  D.几个子系统

(25)状态图描述一个对象在不同()的驱动下发生的状态迁移。

A.事件  B.对象 C.参与者  D.数据

(26)活动图中动作状态之间的迁移不是靠()触发的,当活动(动作)状态中的活动完成时迁移就被触发。

A.对象  B.事件 C.参与者  D.系统

1、在UML中下面哪个图用于描述系统与外部系统及用户之间的交互。

( )

A.类图B.用例图C.对象图D.协作图

2、面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中哪个不属于面向对象分析阶段。

()

A.构造分析模型B.识别分析类C.确定接口规格D.评估分析模型

3、面向对象分析需要找出需求中客观存在的实体对象(概念),然后归纳抽象出实体类。

下面哪项是寻找实体对象的有效方法之一。

( )

A.会议调查B.问卷调查C.电话调查D.名词分析

5、在进行面向对象设计时,采用设计模式能够( ) 

A.复用相似问题的解决方案

B.改善代码的平台可移植性

C.改善代码的可理解性

D.增强软件的易安装性

6、在采用UML构建的用例模型中,参与者(Actor)与用例是模型的主要元素,其中参与者与用例之间可以具有什么关系。

(  )

A.包含   B.递归 C.关联 D.组合

7、当采用标准UML构建类模型时,若类B除具有类A的全部特性外,类B还可以定义新的特性以及置换类A的部分特性,那么类B与类A具有(   )关系,若类A的对象维持类B对象的应用或指针,那么类A与类B具有()关系。

A.聚合   B.泛化 C.传递 D.迭代

A.聚合   B.泛化 C.传递 D.迭代

8、下面哪个图符表示UML中的实现关系?

A.

B.

C.

D.

填空

1、阅读以下说明和Java代码,根据题意填空。

[说明]在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。

当文件的内容或状态发生变化时,关注此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。

一个OfficeDoc对象能够关联一组DocExplorer对象,当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的DocExplorer对象都将得到通知,这种应用被称为观察者模式。

以下代码写在一个Java源文件中,能够正确编译通过。

[Java代码]

//Subject.java文件

publicinterfaceSubject{

publicvoidattach(ObserverDocExplorer);

publicvoiddetach(ObserverDocExplorer);

voidnotifyObservers();

}

//Observer.java文件

publicinterfaceObserver{

voidupdate();

}

//OfficeDoc.java文件

importjava.util.*;

publicclassOfficeDocimplementsSubject{//OfficeDoc类实现Subject接口

   privateVectorObserverVector=new;

//存储与OfficeDoc相关联的DocExplorer对象

publicvoidattach(Observerobserver){

//将某DocExplorer对象与OfficeDoc相关联

   ObserverVector.addElement(observer);

}

publicvoiddetach(Observerobserver){

//解除某DocExplorer对象与OfficeDoc的关联关系

  ObserverVector.removeElement(observer);

}

publicvoidnotifyObservers(){

//当OfficeDoc对象状态已经发生变化时,通知所有的DocExplorer对象

EnumerationEnumeration=;

while(enumeration.hasMoreElements()){

((Observer)enumeration.nextElement()).;

}

}

publicEnumerationObserver(){

returnObserverVector.elements();

}

//其他方法略

//DocExplorer.java文件

publicclassDocExplorerimplements{

publicvoidupdate(){

//更新DocExplorer自身的状态 ,代码略

}

}

2、某绘图系统存在Point、Line、Square三种图类,他们具有shape接口,类图关系如下所示。

现要加入绘制圆的类Circle,已知某第三方库已经提供了MeCircle类,并完全满足要新增的Circle所需要的功能,但MeCircle不是由Shape派生来,它提供的接口不能被系统直接使用。

完善类图并写一段代码,使其既使用了MeCircle类又遵循Shape规定的接口,既避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。

3、如果类A和类B关系如下图,分别写出能表示二者关系的类A的简单代码(Java或C++)。

(1)

(2)

画一个UML类图表示下面Java类。

publicclassCounter{

privateintvalue;

publicCounter(){

value=0;

}

publicintgetValue(){

returnvalue;

}

publicvoidincrement(inti){

value+=i;

}

publicvoidreset(){

value=0;

}

}

画出下面两个类之间关系

publicclassAccount{

privateDebitCardtheCard;

publicDebitCardgetCard(){}

publicvoidsetCard(DebitCardcard){}

publicvoidremoveCard(){}

}

publicclassDebitCard{

privateAccounttheAccount;

publicDebitCard(Accounta){}

publicAccountgetAccount(){}

}

画出下面两个类之间关系

classClassA{

publicvoidfun(ClassBbb){

bb.g();

}

}

classClassB{

publicvoidg(){}

}

写出上面图的代码(10分)

▪publicclassjob

▪{

▪privateDoublesalary;

▪publicjob(){}

▪}

publicclassPlayer

{

privateStringPlayerName;

protectedTeamemployer;

publicPlayer(){}

}

publicclassTeam

{

privateStringTeamName;

publicPlayeremployee[];

publicTeam(){}

}

描述模式的四个基本要素是什么?

(4分)

(1)模式的名称

(2)问题(3)解决方案(4)效果

简述策略模式的意图和处理的问题?

▪意图:

定义一系列的算法,把他们一个一个封装起来,并且使它们可相互替换。

本模式使算法可独立于使用它的客户而变化.

▪问题:

需要根据发出请求的客户或被处理的数据对算法作出选择.如果你只是拥有一些不发生变化的算法,不需要Strategy模式.

专家模式和创建者模式的作用是什么?

判断题

1、瀑布式(Waterfall)软件开发方法是一种系统的和循序渐进的软件开发方法,其开发过程属于迭代式(Iterative)的。

()

2、在关联上加限定符可以多重性是一对多的关联转变为一对一的关联。

()

3、在协作图中表示消息时必须要有消息顺序号。

()

4、在顺序图中表示消息时可以没有要有消息顺序号。

()

5、在下面用例图中,用例A与B之间有扩展关系,C与D之间是包含关系,除此之外A、B、C、D没有与别的用例有关系。

则用例A一定是一个完整的用例,即是可以独立存在的用例,但用例C不能保证一定是一个完整的用例。

()

6、两个类之间如果存在关联关系,则最多只能有一个关联关系。

()

7、在设计类图时,可以不用对类图中的每个关联进行命名

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2