Programming Methodology 19

今回はインターフェイスについて語っていました。Java5.0以降の言語仕様については、あまり詳しく把握していなかったので、今回の講義はいろいろと得るものがありました。

  • Interface
    • set of methods
    • common functionality among set of classes
    • is-aの場合の、extendsを使う
    • Interfaceをimplementすると、そのinterfaceのmethodがあることを保障する
  • Map(Interface)
    • keyとvalueの組み合わせ
      • dictionaryの役割(wordsとしてのkeyを渡すと、definitionsとしてのvalueが返ってくる)
      • phone bookとしても捉えることができる
    • このような属性を抽象化したのがInterface
    • HashMap <- implement Map
      • templeteとして2つのtypeを指定する(keyとvalue)
      • Map dict = new HashMap();
      • Map phonebook = new HashMap();
      • オブジェクト生成時に実装クラスを指定して、操作はInterfaceで行なう
      • dict.put(key, value);
      • dict.get(key); -> keyに関連づけられているvalueが返ってくる/見つからなければnullが返る
    • Collection Hierarchy/Map Hierarchy
      • abstract concept
    • Iterator
      • list through set of values
      • ArrayList names = new ArrayList();
      • Iterator it = names.iterator();
      • while (it.hasNext()) { println(it.next()); }
      • HashMapの場合は、Iterator = dict.keySet().iterator();
      • no order、どういう順番でiterateされるかはわからないが、全ての要素を一度だけ訪れる
    • Iteratorを使ったfor文(Java5.0以降)
      • dict.keySet()のiteratorを使って、全要素を巡回する
      • for (String word: dict.keySet()) { println(word); }