首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图5-16所示。 在图5-16中,Product表示产品,Pro
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。 [说明] 某订单管理系统的部分UML类图如图5-16所示。 在图5-16中,Product表示产品,Pro
admin
2010-01-15
81
问题
阅读以下关于某订单管理系统的技术说明、部分UML类图及Java程序,将Java程序中(1)~(5)空缺处的语句填写完整。
[说明]
某订单管理系统的部分UML类图如图5-16所示。
在图5-16中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,Orderltem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。各个类的部分属性和方法说明如表5-23所示。
可以使用类java.util.ArrayList<E>来实现对象的聚集关系,如图5-16中OrderList与Order之间的聚集关系。
for-each循环提供了一种遍历对象集合的简单方法。在for-each循环中,可以指定需要遍历的对象集合及用来接收集合中每个元素的变量,其语法如下:
for(用来接收集合中元素的变量:需要遍历的对象集合)
如果要使用for-each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>。
Java程序7-1和Java程序7-2分别给出了类OrderList和方法statistic的Java代码。
选项
答案
这是一道要求读者掌握Java语言中的java.util.ArrayList<E>和for…each循环的程序分析题。本题的解答思路如下。 仔细阅读Java程序7-1——类OrderList的Java代码可知,类OrderList中具有一个类型为 ArrayList<Order>的属性。结合图5-16订单管理系统的部分UML类图可知,类OrderList和Order之间具有聚集关系。由试题给出的关键信息“可以使用类java.util.ArrayList<E>来实现对象的聚集关系”、“如果要使用for…each循环来遍历对象集合,那么包含该对象集合的类必须实现接口java.util.Iterable<T>”可以推理出,(1)空缺处所填写的内容是“implements Iterable<Order>”。 在定义了ArrayList<E>的类中,必须实现接口Iterator<Order>中的方法iterator<Order>∷iterator(),因此(2)空缺处所填写的实现体应为:return this.orders.iterator(),或return orders.iterator()。 仔细阅读Java程序7-2——方法statistic的Java代码可以初步判断,要填写(3)~(5)空缺处,首先要将方法statistic的功能及实现流程分析清楚。而且(3)~(5)空缺处所填写的内容与for…each循环的使用有关;使用for…each循环时,关键是要确定所遍历的是哪一个对象集合。在类SalesSystem中已经具有两个对象集合,即属性catalog和sales。 方法statistic的功能是依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额。若要统计产品目录中每个产品的订购总量,需要对3个对象集合进行遍历;产品目录(ProductList)、订单列表(OrderList)及Order(需要对订单中的所有订单项进行查询,统计每个订单上所订购的产品的数量)。由此可以得出实现该方法的基本流程是:①从产品目录中取出一个产品→②在订单目录依次查询每张订单→③逐一查询某个订单中的所有订单项。 ①从产品目录中取出一个产品,这对应第1条for…each语句,此时被遍历的对象集合为ProductList。根据试题给出的for…each循环的语法——“for(用来接收集合中元素的变量:需要遍历的对象集合)”和(3)空歌处前半句的“Productproduct:”可以推断出,(3)空缺处应填写ProductList类的对象,而类SalesSystem中的catalog就是ProductList的实例。并且结合图5-16的UML类图可知,类ProductList和Product之间具有聚集关系。依照Java的程序设计规范,引用类的属性时,应使用“this.”属性名的形式。因此(3)空缺处的答案为this.catalog(或catalog)。 ②在订单目录依次查询每张订单,其对应于第2条for…each语句。根据第(3)空缺处的解题思路,可以确定出(4)空缺处应填写OrderList类的对象,即类SalesSystem的属性sales。因此(4)空缺处的答案为this.sales(或sales)。 ③逐一查询某个订单中的所有订单项,其对应于第3条for…each语句。由图5-16类图上可以看出,与类Order具有聚集关系的类是OrderItem。由此可以确定(5)空缺处应填写类OrderItem的对象。由于类SalesSystem中没有这种类型的属性,因此需要在这里定义一个临时对象。另外在if语句中出现了一个标识符item,但是在上下文中并没有出现对它的定义。由此可以推断item的定义应该在(5)空缺处提供。因此(5)空缺处的答案为OrderItem item。
解析
转载请注明原文地址:https://kaotiyun.com/show/vMDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在面向对象分析模型中,______不属于系统的行为模型。
经测试发现某软件系统存在缓冲区溢出缺陷,针对这一问题,最可靠的解决方案是()。
在Windows系统中设置默认路由的作用是(68)。
设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了学生亲属的姓名、与学生的关系以及联系电话。学生实体Students中的“
以下用例图中,A1和A2为(47)。A1和A2的关系为(48)。(48)
模块A、B和C都包含相同的5个语句,这些语句之间没有联系,为了避免重复,把这5个语句抽取出来组成一个模块D,则模块D的内聚类型为(39)内聚。以下关于该类内聚的叙述中,不正确的是(40)。(39)
ICMP协议属于因特网中的(27)协议,ICMP协议数据单元封装在(28)中传送。(28)
将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是()。
国标16260中,在描述外部(内部)效率度量时,给出了若干针对计算机系统时间消耗的定义,以下描述项中正确的有(31)。①响应时间是指从按下传送键到得到结果为止所需要的时间。②处理时间是指从接受一个消息到送出它的结果之间计算机的历时时间。③周转时间是指
随机试题
下列哪种情况不是骨关节结核病灶清除术的适应证
局部黏膜抗感染的主要免疫球蛋白是
《希波克拉底宣言》中提出了()
天癸的产生主要取决于
患者,女,44岁,急性重症胆管炎,急诊入院,体温39.4℃,血压90/50mmHg,脉搏100次/分钟,右下腹压痛,反跳痛,肌紧张,意识不清,不能诉说其他不适。当前有效的处理办法是
当事人对工程造价发生合同纠纷时,解决方法有()。
下列句子中的成语,使用恰当的有()。
针对同一事件或现象,不同的人会产生不同的情绪体验。如在极度缺水的情况下,对于半杯水,甲觉得“还有半杯水,很高兴”;乙觉得“只有半杯水了,真痛苦”。这一现象反映的情绪特征是()
微机硬件系统中最核心的部件是()。
Effectivereadingrequiresnotonly"readingbetweenthelines,"butalso"writingbetweenthelines."Therearetwoways
最新回复
(
0
)