首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookSh
阅读以下说明和Java代码,回答问题 [说明] 对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookSh
admin
2012-02-20
69
问题
阅读以下说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为______。
下面关于软件测试的说法,(48)是错误的。
产品的功能性测试的内容不包括______。A.适合性B.易用性C.正确性D.互操作性
某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取出产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。其中,信号量S是一个互斥信号量,初值为(1);S1是一个(2);S2是一
系统功能测试过程中,验证需求可以正确实现的测试用例称为(32)。
甲、乙软件公司于2013年9月12日就其财务软件产品分别申请“大堂”和“大唐”商标注册。两财务软件相似,且经协商双方均不同意放弃使用其申请注册的商标标识。此情形下,()获准注册。
软件可靠性是指在指定的条件下使用时,软件产品维持规定的性能级别的能力,其子特性(51)是指在软件发生故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。
设数组a[0..n—1,0..m一1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0≤i
随机试题
计算个体工商户生产经营所得的应纳税所得额时,不允许扣除的项目是( )。
唯一适用于各类工作的工作分析方法是()。
甲服装厂为增值税一般纳税人,2017年9月销售给乙企业300套服装,不含税价格为700元/套。由于乙企业购买数量较多,甲服装厂给予乙企业7折的优惠,并按原价开具了增值税专用发票,折扣额在同一张发票的“备注”栏注明。甲服装厂当月的销项税额为()元。
教育学的研究任务包括()。
根据皮亚杰和科尔伯格的研究,要改变或提高个体的道德水平,必须考虑其接受能力,遵循_________原则。
今天是张老师第一次上公开课,她穿着漂亮艳丽的新衣服提前来到教室,带来了很多直观教具,有实物、模型、图片。进教室后,她把这些教具放在讲台上或挂在黑板上,然后用彩色粉笔把黑板边缘装饰得格外醒目。开始上课了,张老师显得镇定自若,她先宣布了期中考试的成绩,并鼓励大
北回归线穿过的地域中,不包括()。
2011年全国共举办展览6830场,比2010年增加9.2%;展出面积为8120万平方米,比2010年增长8.5%;50人以上专业会议64.2万场,比2010年增加17.4%;万人以上节庆活动6.5万场,比2010年增长3%;出国境展览面积60万平方米,比
作为一名大学毕业生,如果能够具备较扎实的专业知识和基本的社会交往能力,或者是在就业市场上能够作出适合自己的选择,那么,就不可能找不到自己的位置。小王是一名大学毕业生,他没有找到工作职位,那么根据上述观点能够推出以下哪项结论?
Therearesuperstitionsattachedtonumbers;eventhoseancientGreeksbelievedthatallnumbersandtheirmultiplehavesomemy
最新回复
(
0
)