Iteratorを作り出すインタフェースには↓が定義しています。 ------------------------------------------- public interface Aggregate { public abstract Iterator iterator(); } ------------------------------------------- Iteratorを実装するクラス(Blockクラス)には、Aggregate インタフェースを実装しており、 Aggregate インタフェースで宣言されていたiteratorメソッドの実体が書かれています。 ------------------------------------------- public class Block implements Aggregate { private Member[] members; private int last = 0; public Block(int maxsize) { this.members = new Member[maxsize]; } public Member getMemberAt(int index) { return members[index]; }
public void listMember(Member member) { this.members[last] = member; System.out.println("-------"); System.out.println(last); System.out.println(this.members[last]); System.out.println("-------"); last ++ ; } public int getLengrh() { return last; } public Iterator iterator() { return new BlockIterator(this); } } ------------------------------------------- Blockクラスの一行目を public class Block { に修正し、 Aggregate インタフェースを実装せずに実行したところ プログラムは問題なくコンパイルされ、実行されたのですが、