表1.1 类,接口一览表
名称 说明 Aggregate 表示已聚合的接口 Iterator 执行递增,遍历的接口 Book 表示书籍的类 BookShelf 表示书架的类 BookShelfIterator 扫描书架的类 Main 测试用类 这个程序是把书籍(Book)放到书架(BookShelf)上,并依次输出书名。
Aggregate
接口(
Aggregate.java
)
<o:p></o:p>
- public interface Aggregate {
- public abstract Iterator iterator();
- }
Iterator 接口(Iterator.java)<o:p></o:p>
- public interface Iterator {
- public abstract boolean hasNext();
- public abstract Object next();
- }
Book
类(
Book.java
)
<o:p></o:p>
- public class Book
- {
- private String name = "";
- public Book(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- }
BookShelf类(BookShelf.java)<o:p></o:p>
- public class BookShelf implements Aggregate {
- private Book[] books;
- private int last = 0;
- public BookShelf(int maxsize) {
- this.books = new Book[maxsize];
- }
- public Book getBookAt(int index) {
- return books[index];
- }
- public void appendBook(Book book) {
- this.books[last] = book ;
- last++;
- }
- public int getLength() {
- return new BookShelfIterator(this);
- }
- }
BookShelfIterator类
- public class BookShelfIterator implaments Iterator {
- private BookShelf bookShelf;
- private int index;
- public BookShelfIterator (BookShelf boofShelf) {
- this.bookShelf = bookShelf;
- this.index = 0;
- }
- public boolean hasNext () {
- if(index < bookShelf.getLength()) {
- return true;
- }else {
- return false;
- }
- }
- public Object next () {
- Book book = bookShelf.getBookAt(index);
- index++;
- return book;
- }
- }
Main.java 测试类
- public class main{
- public static void main(String[] args) {
- BookShelf bookShelf = new BookShelf(2);
- bookShelf.appendBook(new Book("Around the World in 80 days"));
- bookShelf.appendBook(new Book("Bible"));
- Iterator it = bookShelf.iterator();
- while(it.hasNext()) {
- Book book = (Book)it.next();
- System.out.println(""+book.getName());
- }
- }
- }