[说明]对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方

题型:问答题

问题:

[说明]

对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(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());

(4)处填()。

考点:计算机软件水平考试中级软件设计师中级软件设计师下午试题
题型:问答题

票据的出票日期必须使用中文大写,如果大写日期未按要求规范书写的,银行不予受理。()

题型:问答题

患者,女性,40岁。近半月来出现烦渴不止,小便频数,而脉数乏力等症,证多属()

A.脾胃气虚型消渴

B.肺热津亏,气阴两伤型消渴

C.胃热炽盛型消渴

D.肾阴亏虚型消渴

E.阴阳两虚型消渴

题型:问答题

下列关于目前计算机发展的叙述中,错误的是:

A.计算机功能越来越强,使用越来越困难

B.计算机的处理速度不断提高,体积不断缩小

C.计算机功能逐步赵趋向智能化

D.计算机与通信相结合,计算机网络越来越普遍

题型:问答题

2005年2月20日甲公司与乙公司签订了一项800元的劳务合同,甲公司为乙公司开发一套系统软件(以下简称项目)。2005年6月2日项目开发工作开始,预计2007年1月31日完工。预计开发完成该项目的总成本为600万元。甲公司采用已发生劳务成本占估计成本的百分比确定完工程度。其他有关资料如下:
(1) 2005年5月30日,甲公司预收乙公司支付的项目款480万元存入银行。
(2) 2005年甲公司为该项目实际发生劳务成本210万元,均为人工费用。估计将要发生成本390万元。
(3) 2006年12月31日,甲公司为该项目实际发生劳务成本369.5万元,均为人工费用。估计将要发生成本30.5万元。
(4) 2007年1月31日,甲公司为该项目实际发生劳务成本25万元,均为人工费用。
(5) 甲公司收到乙公司支付的项目款其余款项320万元存入银行。
假定甲公司在年末确认收入和成本,2005年、2006年和2007年末均能对该项目的结果予以可靠估计。
要求:
(1) 计算甲公司2005年、2006年和2007年该项目的完成程度。
(2) 计算甲公司2005年、2006年和2007年该项目确认的收入和费用。
(3) 编制甲公司各年相关的会计分录。
(答案中的金额单位用万元表示)

题型:问答题

当界面存在两种()流体时,作用在界面上的作用力,称为界面张力。

A、混相

B、非混相

C、异相

D、同相

更多题库