[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc

上传人:terrorscript155 文档编号:507223 上传时间:2018-11-29 格式:DOC 页数:17 大小:266.50KB
下载 相关 举报
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc_第1页
第1页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc_第2页
第2页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc_第3页
第3页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc_第4页
第4页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷54及答案与解析.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 54及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读下列说明、图 1和图 2,回答问题 1、问题 2和问题 3。 【说明】 下面是某租车信息管理系统的介绍:该车库中备有若干车辆,每辆车有车号、车牌、车名、价格等属性。车库不定期地购买并注册新车供用户借用,也可将报废的旧车注销以停止租用。 车库可为众多用户提供服务。每个用户在借车之前需注册姓名、地址等内容。每个用户最多可同时借 3辆车。每辆车借期 7天;若有一辆车超期,则不可再借其他车。一辆车超期 一天罚款 250元。若一辆车超期 3周不归还,则发布通告。若用户借的车

2、丢失,在罚款处理之前不能借车,每辆报失的车罚款该车目前市价 (包括折旧 )的 1.2倍。注册新用户不受限制;而注销用户之前,该用户必须归还所有借的车,或者报失并接受罚款。1 分析车辆的状态和事件,指出图 1中的 (1)、 (2)、 (3)、 (4)分别是什么 ? 2 分析用户的状态和事件,指出图 2中的 (5)、 (6)、 (7)、 (8)分别是什么 ?(注意,用户与车辆在状态图中的关系 )。 3 指出 UML中活动图的含义,并说明活动图和状态图的区别与联系。 4 【说明】 下面是某租车信息管理系统的介绍:该车库中备有若干车辆,每辆车有车号、车牌、车名、价格等属性。车库不定期地购买并注册新车供

3、用户借用,也可将报废的旧车注销以停止租用。 车库可为众多用户提供服务。每个用户在借车之前需注册姓名、地址等内容。每个用户最多可同时借 3辆车。每辆车借期 7天:若有一辆车超期,则不可再借其他车。一辆车超期一天罚款 250元。若一辆车超期 3周不归还,则发布通告。若用户借的车丢失,在罚款处理之前不能借车,每辆报失的车罚款该车目前市价 (包括折旧 )的 1.2倍。注册新用户不受限制;而注销 用户之前,该用户必须归还所有借的车,或者报失并接受罚款。 4 分析车辆的状态和事件,指出图 2-1中的 (1)、 (2)、 (3)、 (4)分别是什么 ? 5 分析用户的状态和事件,指出图 2-2中的 (5)、

4、 (6)、 (7)、 (8)分别是什么 ?(注意,用户与车辆在状态图中的关系 )。 6 指出 UML中活动图的含义,并说明活动图和状态图的区别与联系。 7 阅读以下说明和流程图,回答问题 1至问题 3,将解答写在对应栏内。【说明】 (1)流程图描述某大型商店商品销售的数据处理流程。 (2)商店设有若干柜台,同一 种商品可能在几个柜台上销售,各柜台每天提供一组日销售数据,其格式如下: 日期、柜台号、商品代码、销售数量、商品代码、销售数量 (3) 数据处理系统每日产生一份反映各柜台当日销售金额和商店日销售金额的 “日销售金额报告 ”,必要时还产生一份 “商品请购报告 ”,给出那些低于最低库存量的商

5、品代码、商品名称、最低库存量和实际库存量。处理过程中产生存档的 “日销售文件 ”和临时工作文件“日销售量文件 ”和 “旧销售金额文件 ”。 (4)系统中所用到的数据均来自数据文件。 (5)流程图中的商品库存文件的记录已按关键字 “商品代码 ”排序 。 7 指出商品库存文件的记录中必须包括哪些数据项 ? 分别指出在日销售文件,日销售量文件和日销售金额文件的记录中至少应包括哪些数据项,同时不产生数据冗余 ? 错误清单可能指出哪些错误 ? 8 简要叙述处理 6的主要内容。 9 如果删除流程图中的虚框部分,日销售文件的记录中应增加什么数据项 ? 10 阅读下列说明和相关的类图,回答问题。 【说明】 在

6、一栋 m层楼的大厦里,用电梯内和每个楼层的按钮来控制 n部电梯的运作。当按下电梯内按钮请求电梯在指定楼层停下时,按钮指示灯亮,当电梯到达指定楼层时,指示灯 熄灭。除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降运动时,关门并停止在当前楼层。 软件设计师火云龙采用面向对象分析的方法,经过三次逐步求精设计之后,得到如图 13-19所示的类图。 【问题1】 按钮类有一个重要的属性,请将该属性填入图 13-19中的 (a)处。 【问题 2】 识别关联的多重性是面向对象建模重要的一

7、步,请根据题目说明填空 (1) (6)。 【问题 3】 软件设计师火云龙在初 步设计类时,将门 (的状态 )作为电梯的属性,后经思考,将电梯门设计成一个独立的类,这么做的好处是什么 ? 软件设计师火云龙在初步设计类时,并没有设计 “请求 ”类,后来又加入了该类,这么做的原因是什么 ? 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 11 从下列的 3道式题 (试题五至试题七 )中任选 1道解答。 如果解答的试题数超过 1道,则题号小的 1道解答有效。 阅读以下说明和 C+码,将应填入 (n)处的字名写在

8、的对应栏 内。 说明 利用 c+的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数: Leap ()用于判定指定的年份是闰年, Week ()用于计算 year年份的 1月 1日是星期几,其判定规则为: (1) 如果 year 年份为 1994年,则为星期六。 (2) 如果 year 年份大于 1994年,则星期值 weekno 按下列公式计算: differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date

9、=6+differ%7 weekno=(date6)? date-7: date (3) 如果 year 年份小于 1994年,则星期值 weekno 按下列公式计算: differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7 # include “iostream. h“ # include “iomanip. h“ int leap(int n) if( (1) ) return 0 else return 1; int week( int year ) int a1,

10、differ, date, weekno; if (year = = 1994) a1 =0; else if (year 1994) a1=1; else a1= -1; switch(a1) case 0: return 6; break; case 1: (2) date = 6 + differ% 7; weekno = ( date 6) ? date - 7 date; return weekno; break; case - 1: differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (

11、2000 - year)/400; weekno =6-differ%7; return weekno; break; void main( ) int i,year,m2,n,j; cout “Please input 某年数 :”; cin year; if ( ! leap(year) ) (3); else m2 =28; int month 12: 31 ,m2,31,30,31,30,31,31,30,31,30,31 ; (4) for ( i=0; i 12; i+ + ) cout end1 setw(4*n) “; for(j=1 ;j =month i ;j+ +) co

12、ut setw(4) j; n+ +; if(n =7) (5) cout end1; 12 阅读下列 Java程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】本程序 ExceptionTester实现功能:读入两个整数,第 1个数除以第 2个数,之后输出。若第 2个数为 0,则自动进行异常处理。 程序如下: (1); public class ExceptionTester public static void main(String args) int result; int number new int2; boolean valid; for(int i 0; i 2;

13、 i+) valid (2); while(!valid) try System out println(“Enter number“+(i+1); numberi=Integer valueOf(Keyboard getString() intValue(); valid true; catch(NumberFormatExceptione) System out println(“Invalid integer entered Please try again “); by result number0/number1; System out print(number0+“/“+numbe

14、r1+“ “+result); catch(3) System out println(“Second number is 0, cannot do division!“); 其中, Keyboard类的声明为: impon java io *; public class Keyboard static BufferedReader inputStream new (4) (new InputStreamReader(System in); public static int getInteger() try return(Integer,valueOf(inputStream readLln

15、e() trim() intValue(); catch(Exceptione) e printStackTrace(); return 0; public (5) by return(inputStream readLine(); catch(IOExceptione) return “0“; 12 阅读以下说明和 Java代码,将应填入 (n)处的字句写在对应栏内。 说明 在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果 在启动的时候,所有功能 (连不用的功能 )都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化

16、该功能。 以下示例展示了 Proxy(代理 )模式, PrinterProxy类执行一些比较 “轻 ”的方法 设置名称和取得名称,需要真正执行 “重 ”的方法 真正打印 时才初始 Print类。图 6-1显示了各个类间的关系。 图 6-1 Java代码 /Printable.Java publiC (1) Printable public abstract void setPrinterName(String name); public abstract String getprinterName(); public abstract void print(String string); /P

17、rinter.Java public class Printer implements Printable private String name; public Printer() System.out.println(“正在产生 Printer的对象实例 “); public Printer(String name) this.name=name; heavyJob(“正在产生 Printer的对象实例 (“+name+“)“); public void setPrinterName(String name) this.name=name; public String getPrinter

18、Name() return name; public void print(String string) System.out.println(“=“ +name+“ =“); System.out.println(string); /PrinterProxy.Java public class PrinterProxy (2) Printable private String name; private Printer real; public PrinterProxy() public PrinterProxy(String name) this.name=name; public gyn

19、chronized void setPrinterName(String name) if( (3) ) real.setPrinterName(name); this.name=name; public String getprinterName() return name; public void print(String string) (4); real.print(string); private synchronized void realize()/产生真正的 Printer对象 if(real=null) real=(5); 13 (1) 14 (2) 15 (3) 16 (4

20、) 17 (5) 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 54答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 (1)cancel register(注销旧车的注册 )(2)register(车辆注册 ) (3)return(归还 )(4)lost report(遗失报告 ) 2 【正确答案】 (5)cancel register(注销用户的注册 )(6)borrow/n+1(借车 /拥有车的数量 +1)(7)penalty and n=0(罚款并且拥有车的数量为 0)(8)3 3 【正确答案】 活动图 (activity diagram)显示动作

21、及其结果。活动图着重描述操作(方法 )实现中所完成的工作以及用例实例或对象中的活动。活动图是状态图的一个变种,与状态图的目的有一些小的差别,活动图的主要目的是描述动作 (执行的工作和活动 )及对象状态改变的结果。当状态中的动作被执行 (不像正常的状态图,它不需指定任何事件 )时,活动图中的状态 (称为动作状态 )直接转移到下一个阶段。活动图 和状态图的另一个区别是活动图中的动作可以放在泳道中。泳道聚合一组活动,并指定负责人和所属组织。活动图是另一种描述交互的方式,描述采取 【试题解析】 根据题意可以分析出车辆的状态和事件,例如根据 “车库不定期地购买并注册新车供用户借用,也可将报废的旧车注销以

22、停止租用 ”,可以得出 (1)、(2)空分别是注销旧车的注册和车辆注册。 (3)空可以从在库状态和在借状态的合理推断,得出从在借状态到在库状态只有一种事件 “归还 ”。从在借状态到终结状态,也只有一种可能性,那就是遗失。 根据题意 “注销用户之前,该用户 必须归还所有借的车,或者报失并接受罚款 ”,得出从 “No Car”到终结状态的事件 (5)空是 cancel resister(注销用户的注册 )。根据从 “No Car”到 “Has Car”的事件 (6)空是 borrow(借车 ),同时已知用户可以借多辆车,当前拥有车 n辆,所以需要 n+1。根据 “若用户借的车丢失,在罚款处理之前不

23、能借车 ”可知 (7)空是 penalty(罚款 ),同时状态从 “Has Car”到达 “No Car” 说明n= 0。根据 “每个用户最多可同时借 3辆车 ”,可以得出 (8)空为 3。 所有的系统均有静态结 构和动态行为。结构可以用静态模型元素来描述,如类、关系、节点和构件。行为描述结构内的元素如何交互。通常情况下,这些交互是确定的且可以建立模型。抽象系统的动态行为也称为动态建模, UML 支持动态建模。在 UML 中有 4类图,每一类用于不同的目的:状态、序列、协作和活动。状态图被用来描述类 (也可以用于子系统或整个系统 )中的行为和内部状态。它着眼于描述随着时间的改变,对象如何改变其

24、状态。状态的改变起决于出现的事件,状态中执行的行为和动作,状态转移等。事件可能是条件成真,接收一个信号或一个操作调用或经过指定时间。序列图主 要用来描述在指定情节中一组对象是如何交互的。它着眼于消息序列,也就是说,在对象间如何发送和接收消息。序列图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示有关的对象。序列图中最基本的东西是时间。协作图主要用来描述对象在空间中的交互,即除了动态交互,它也直接描述对象是如何链接在一起的。在协作图中没有时间轴,因而将消息按序编号。 4 【正确答案】 (1)cancel register(注销旧车的注册 ) (2)register(车辆注册 ) (3)return(

25、归还 ) (4)lost report(遗失报告 ) 【试题解析】 根据题意可以分析出车辆的状态和事件,例如根据 “车库不定期地购买并注册新车供用户借用,也可将报废的旧车注销以停止租用 ”,可以得出 (1)、(2)空分别是注销旧车的注册和车辆注册。 (3)空可以从在库状态和在借状态的合理推断,得出从在借状态到在库状态只有一种事件 “归还 ”。从在借状态到终结状态,也只有一种可能性,那就是遗失。 5 【正确答案】 (5)cancel register(注销用户的注册 ) (6)borrow/n+1(借车 /拥有车的数量 +1) (7)penalty and n=0(罚款 并且拥有车的数量为 0)

26、 (8) 3 【试题解析】 根据题意 “注销用户之前,该用户必须归还所有借的车,或者报失并接受罚款 ”,得出从 “No Car到终结状态的事件 (5)空是 cancel register(注销用户的注册 )。根据从 “No Car”到 “Has Car”的事件 (6)空是 borrow(借车 ),同时已知用户可以借多辆车,当前拥有车 n 辆,所以需要 n+1。根据 “若用户借的车丢失,在罚款处理之前不能借车 ”可知 (7)空是 penalty(罚款 ),同时状态从 “Has Car”到达“No Car”说明 n=0。根据 “每个用户最多可同时借 3辆车 ”,可以得出 (8)空为 3。 6 【正

27、确答案】 活动图 (activity diagram)显示动作及其结果。活动图着重描述操作(方法 )实现中所完成的工作以及用例实例或对象中的活动。活动图是状态图的一个变种,与状态图的目的有一些小的差别,活动图的主要目的是描述动作 (执行的工作和活动 )及对象状态改变的结果。当状态中的动作被执行 (不像正常的状态图,它不需指定任何事件 )时,活动图中的状态 (称为动作状态 )直接转移到下一个阶段。活动图和状态图的另一个区别是活动图中的动作可以放在泳道中 。泳道聚合一组活动,并指定负责人和所属组织。活动图是另一种描述交互的方式,描述采取 【试题解析】 所有的系统均有静态结构和动态行为。结构可以用静

28、态模型元素来描述,如类、关系、节点和构件。行为描述结构内的元素如何交互。通常情况下,这些交互是确定的且可以建立模型。抽象系统的动态行为也称为动态建模,UML 支持动态建模。在 UML 中有 4类图,每一类用于不同的目的:状态、序列、协作和活动。状态图被用来描述类 (也可以用于子系统或整个系统 )中的行为和内部状态。它着眼于描述随着时间的改变,对象如何改变其状态。状态的改 变起决于出现的事件,状态中执行的行为和动作,状态转移等。事件可能是条件成真,接收一个信号或一个操作调用或经过指定时间。序列图主要用来描述在指定情节中一组对象是如何交互的。它着眼于消息序列,也就是说,在对象间如何发送和接收消息。

29、序列图有两个坐标轴:纵坐标轴显示时间,横坐标轴显示有关的对象。序列图中最基本的东西是时间。协作图主要用来描述对象在空间中的交互,即除了动态交互,它也直接描述对象是如何链接在一起的。在协作图中没有时间轴,因而将消息按序编号。 7 【正确答案】 商品代码、商品名称、单价、最低库存数量 、实际库存数量。 日销售文件:柜台号、商品代码、销售数量。 日销售量文件:商品代码、销售数量。 日销售金额文件:柜台号、销售金额。 非法日期、非法商品代码、销售量为负数、销售量大于实际库存量; 8 【正确答案】 更新商品库存文件中的实际库存量。 当实际库存量小于最低库存量时产生商品请购清单。 9 【正确答案】 在日销

30、售文件中增加 “单价 ”或 “金额 ”。 【试题解析】 本题描述的是商品销售的数据处理流程。首先要对说明和流程图进行快速扫读,然后结合问题,在说明和图中找到有关的范围,进行分析 。 问题 1中的第一个小问题是指出商品库存文件的记录中必须包括哪些数据项,首先,应该马上注意到说明中的第 5项,应该包括 “商品代码 ”。同时,注意第 4项,所用到的数据均来自数据文件,这个条件将会直接影响后面的分析。 图中显示,商品库存文件在处理 1、处理 3、处理 6使用到。流程图中很明显地显示出在处理 1产生日销售文件后分为两个分支,即左边的分支处理日销售量和商品请购事务和右边的分支处理销售金额事务。 处理 6生

31、成商品请购清单,说明 3中提到商品请购清单给出低于库存量的商品代码、商品名称、最低库存量和实际 库存量。其所在分支只在处理 1中使用到除库存文件之外的日销售数据,日销售数据和商品库存文件经过处理 1生成日销售文件,所以,商品库存文件必须还包括;商品名称、最低库存量、实际库存量。 处理 1生成的日销售文件还被右边分支使用,它和商品库存文件又被处理 3使用生成日销售金额文件,销售金额:单价 x销售量,销售数量由日销售数据提供,所以,商品单价应该由商品库存清单提供。 由此,得出商品库存清单必须包括的数据项。 问题 1中的问题 在分析 时已经得到了一些线索,在进一步分析中得出,在同时要保证不能有数据项

32、冗 余的情况下,可以得出日销售金额必须包括柜台号、商品代码、销售数量;日销售量文件必须包括商品代码、销售数量;日销售金额必须包括柜台号、销售金额。 问题 1的 ,错误清单产生于处理 1,这时还没有用到商品库存文件中的商品单价,所以不可能有关于金额的错误。可能有的错误是非法的商品代码、非法日期、销售数量为负、销售数量大于库存数量。 处理 6根据日销售量文件和商品库存文件来更新商品库存文件,并在实际库存量小于最低库存量时产生商品请购清单。 删除虚框部分,就是在处理 3处不使用商品库存文件,那么商品库存文件 提供的数据项就要在日销售文件中提供,所以日销售文件中要提供 “单价 ”,也可以提供“金额 ”

33、,这样就免去计算处理。 10 【正确答案】 问题 1 (a)指示灯 问题 2 (1)mn (2)mn (3)2m-2 (4)2m-2 (5)n (6)n 问题 3 一旦将电梯门作为一个独立的类,则打开或关闭电梯门的唯一办法就是向 “电梯门 ”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。 出于安 全考虑,在未经授权时不能随意修改 “请求 ”,因此将 “请求 ”设计成独立的类,如果 “请求 ”类封装得好就能有效保证电梯安全运行。 【试题解析】 从图 13-19可知,电梯按钮类和楼层按钮类都是按钮类的子类,电梯按钮和楼层按钮的共同点

34、就是用指示灯跟乘客进行交互,所以,按钮类必定有个重要的属性 “指示灯 ”。识别关联的多重性是面向对象建模重要的一步。题目的说明中提到 “在一栋 m层楼的大厦里,用电梯内和每个楼层的按钮来控制 n部电梯的运作 ”、 “除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行 ”,所以这栋大厦 中一共有 mn 个电梯按钮,共有 2m-2 个楼层按钮,电梯控制器类控制着所有的电梯按钮、楼层按钮和电梯,所以第 (1) (6)空应分别填: mn、 mn、 2m-2、 2m-2、 n、 n。注意,不可以用 *号代替, *号表示多个,具体多少是未知,而题目已经给定具体数目,所以应该用 m、 n

35、 来表示。 识别类是面向对象分析的第一步,常用的方法是名词分析法。题目的说明其实就是电梯系统的需求说明,出现了如下主要名词:大厦、电梯、楼层、按钮、运动、指示灯、请求、最底层、最高层、方向和门。这些名词所代表的事物可作为类的初步候选者。其中,大厦、最 底层、最高层和楼层处于问题范畴之外,因此不必考虑。运动、方向、指示灯和门可作为其它类的属性,例如,指示灯 (的状态 )可作为按钮类的属性,方向和门 (的状态 )可作为电梯类的属性。 经过上述初步筛选只剩下两个基本的候选类,即电梯类和按钮类。在题目的说明中实际指定了两种按钮,因此,应该为按钮类定义两个子类,即电梯按钮和楼层按钮。综合上述分析结果,可

36、得出系统的类图,如图 13-50所示。 这个模型是非常初步的模型,需要进一步充实、精化和完善。 分析上述模型会发现它存在比较明显的不足:在实际的电梯系统中,按钮并不直接与电 梯通信;为了决定分派哪一部电梯去响应一个特定的请求,必须有某种类型的电梯控制器。然而在题目说明中并未提到控制器,因此它未被列入候选类中。由此可见,名词分析法只为寻找候选类提供了初步线索,不能指望依靠这种方法找出全部候选类。系统分析员必须根据领域知识、常识和经验做进一步分析,才能找出问题域中所有的类。补充了电梯控制器类之后,其类图如图 13-51所示。 这个模型也并非十分完善。电梯类的主要功能应是执行电梯控制器发出的移动或等

37、待命令,如果将门 (的状态 )作为电梯的一个属性,则电梯还要执行关门或开门的命令,这样电梯 类的功能就不单一了。于是将电梯门划分出来成为一个独立的类,一旦将其作为一个独立的类,则打开或关闭电梯门的唯一办法就是向 “电梯门 ”类对象发送消息。如果电梯门类封装得好,就能保证不会在错误的时间关闭或打开电梯门,从而有效杜绝严重意外事故的发生。同样,出于安全考虑,在未经授权时不能修改 “请求 ”,因此将 “请求 ”设计成独立的类。经过再次完善之后的类图如图 13-19所示。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解

38、答有效。 11 【正确答 案】 (n%100 = =0) (n%400 = =0) differ=(year - 1994) *(365%6) +(year - 1993)/4 -(year-2001)/100 +(year-2001 )/400; m2 =29 n = week( year ); n=0; 12 【正确答案】 (1)import java.io.* (2)false (3)ArithmeticException e (4)BufferedReader (5)static String getString() 【试题解析】 (1)import java.io.* Java程序的

39、头部。 (2)false 开关变量 valid 初值应该为 false。 (3)ArithmeticException e 捕捉算术计算异常信息。 (4)BufferedReader 动态生成一个 BufferedReader 对象用于输入。 (5)static String getString() 读字符串成员函数的函数头部。 13 【正确答案】 interface 14 【正确答案】 implements 15 【正确答案】 real !=null 16 【正确答案】 realize() 17 【正确答案】 new Printer(name) 【试题解析】 在 Java中, interfa

40、ce和 abstract class 均能包含抽象方法, “类是用来继承的 (extends),接口是用来实现的 (implements)。 ”由类 Printer的声明可判知 Printable应为接口,故空 (1)应填 interface。 因 Printable是一个接口,故空 (2)应填 implements。该空 比较简单。 real是一个引用,调用之前当然得先判断 real是否为空,只有不是空才能进行调用,否则将出现不可预期的结果,因此空 (3)应填 real !-NULL。 在执行打印时,需要保证已经正确生成了 real对象,否则打印将无法完成,这也正是 Proxy的核心所在,到真正需要打印时,才生产 real对象,因此空 (4)应填realize()。 real是 Printer对象引用,空 (5)是生成一个 Printer对象,注意 Printer类的构造函数是 Printer(string name),故应 填 new Printer(name)。顺便说一下,生成 real对象时,进行 Treal 是否为空的判断,并将方法 realize()声明为 synchronized,这是为了避免生成多个 real对象,有一个即可。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1