首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookSh
阅读以下说明和Java代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookSh
admin
2012-02-20
39
问题
阅读以下说明和Java代码,回答问题
[说明]
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图6-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。
[图6-1]
[Java代码]
//Iterator. java文件
public interface Iterator {
public abstract boolean hasNext();
public abstract Object next();
}
//Aggregate. java文件
public interface Aggregate {
public abstract Iterator iterator();
}
//Book. java
public class Book {
//省略具体方法和属性
}
//BookshelfIterator. java文件
public class Bookshelf工terator (1) Iterator{
private BookShelf bookShelf;
private int index;
public BookshelfIterator(BookShelf bookShelf) {
this. bookShelf = bookShelf;
this. index = 0;
}
public boolean hasNext(){//判断是否还有下一个元素
if(index < bookShelf. getLength()){
return true;
}else{
return false;
}
}
public Object next()f//取得下一个元素
Book book = bookShelf. getBookAt(index);
index++;
return book;
}
}
//BookShelf. java
import java. util. Vector;
public class BookShelf {
private Vector books;
public BookShelf(int initialsize){
this. books = new Vector(initialsize);
}
public Book getBookAt(int index){
return(Book)books.get(index);
}
public int getLength(){
return books.size();
}
public Iterator iterator(){
return new BookShelfIterator( (2) );
}
}
//Main. java文件
public class Main {
public static void main(String args){
BookShelf bookShelf = new BookShelf(4);
//将书籍上架,省略代码
Iterator it = bookShelf. (3) ;
while( (4) ){//遍历书架,输出书名
Book book = (Book)it. (5) ;
System.out.printin(" "+book.getName());
}
}
}
选项
答案
(1)implements this iterator() it.hasNext() next()
解析
Iterator是接口类,空(1)应该填implements。
根据构造函数Bookshelflterator(BookshelfbookShelf)可得,空(2)应填this,即自身引用。
空(3)是取得迭代器实例,BookShelf类方法iterator()是返回Iterator接口,故空(3)应填iterator()。
while循环是遍历书架,输出书名,循环条件是“还有下一记录(书)”,故空(4)应填it.hasNext()。注意指针写法。
空(5)是取得书实例,BookShelf类中方法next()是返回Object类实例,取得下一本书,故空(5)应填next()。
转载请注明原文地址:https://kaotiyun.com/show/WlDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则________________是一个小顶堆结构。堆结构用二叉树表示,则适宜的二叉树类型为________________。对于10个结点的小顶堆,其
软件内部/外部质量模型中,以下(66)不是功能性包括的子特性。
一个软件开发过程描述了“谁做”、“做什么”、“怎么做”和“什么时候做”,RUP用(16)表述“谁做”。
软件可移植性应从如下(46)方面进行测试。
计算机系统中,虚拟存储体系由______两级存储器构成。
(38)属于概要设计说明书的评测内容。①分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求。②系统定义的目标是否与用户的要求一致。③从软件维护的角度出发,确认该软件设计是否考虑了方便未来
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
下图是①设计模式的类图,该设计模式的目的是②,图中,Abstraction和RefinedAbstraction之间是③关系,Abstraction和Implementor之间是④关系。①处应填入?
下图是________________设计模式的类图,该设计模式的目的是________________,图中,Decorator和Component之间是________________关系,ConcreteDecorator和Decorator之间是_
通常一个HFC网络由前端(FE)、主数字终端(HDT)、光纤节点(FN)、网络接口单元(NIU)、综合业务单元(ISU)及传输线路等构成。根据HFC网接入Internet网的典型配置,将图6-12所示的拓扑图中(A)~(D)空缺处的名称填写完整(请使用题干
随机试题
生态系统是个无______、非中心式的自我控制系统。
A.头痛而眩B.头痛而空C.头痛如裹D.头痛昏蒙眩晕肾虚头痛的临床特征是
清营汤的组成药物不包括
根据竣工结算的计算原则,措施项目中的总价项目除()外,其他应依据合同约定的项目和金额计算;如发生调整的,以发承包双方确认调整的金额计算。
背景某机电安装公司承担了某钢厂冷轧薄板连续退火炉工程的施工总承包任务。工程内容包括:冷轧薄板连续退火炉本体及附属设备、工艺管道安装;退火炉钢结构厂房建造安装;厂外燃气、原料系统管道安装施工。合同规定,项目的质量目标为获得国家安装工程优质
(用户名:61;账套:601;操作日期:2013年1月31日)查询全部供应商的供应商往来余额表。
“搭便车”现象是对下列()的一种形象的比喻。
作为可再生新能源,风能具有无污染、永不枯竭、综合社会效益高、研发成本相对低等特点。然而,风能行业建设投资回收周期长,客观上需要长期、稳定的优惠政策保障。美国风能增长潜力很大,但因美政府对风能税收鼓励政策不稳定,使包括中国风能企业在内的国际投资者在美国风能市
Forthispart,youareallowed30minutestowriteashortessayentitledTeachingKnowledgeorEducatingPeople?Youshouldwri
Whensomeonecommitsacriminalact,wealwayshopethepunishmentwillmatchtheoffense.Butwhenitcomestooneofthecruel
最新回复
(
0
)