トップ 一覧 Farm 検索 ヘルプ RSS ログイン

オブジェクト指向プログラミング(C317-2 2005/11/21)の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!オブジェクト指向プログラミング 第11回
!!コンポジットパターンの例題と演習
配布プリントのプログラムを入力、実行し、コンポジットパターンについて理解する。

!!演習
OSのファイルシステムを真似たプログラムを例題を参考に作成する。クラス図は次の通り。

{{ref_image ex04-1.png}}

,クラス名,役割
,Entry,ファイルやディレクトリの持つ機能を規定
,File,ファイルを表す。
Directory,ディレクトリを表す

!Entryクラス
*例題同様にインターフェースにする
*クラス図のメソッド名を定義する
!Fileクラス
*フィールドはString型のファイル名を示すname、int型のファイルサイズを示すsize
,メソッド名,戻り値,引数,動作
,getName(),void,なし,名前を表示
,getSize(),int,なし,ファイルサイズを取得
,printList(),void,なし,ファイル名を表示

!Directoryクラス
*フィールドにはString型でディレクトリ名を示すnameと、ディレクトリエントリの配列リストdirectories
,メソッド名,戻り値,引数,動作
,getName(),void,なし,ディレクトリ名を示す
,getSize(),int,なし,配列リストdirectoriesからサイズを取得し、加算する
,printList(),void,なし,配列リストdirectoriesの内容を表示する
,add,void,Entry型のオブジェクト,ファイルやディレクトリを配列リストに追加する

!テスト用クラス
このクラスでディレクトリ構造の内容を配列リストに追加し、それを表示する。
 public static void main(String[] args) {
   // ディレクトリオブジェクトの作成
   Directory rootdir = new Directory("root");
   Directory bindir = new Directory("bin");
   Directory homedir = new Directory("home");
   // ファイルをディレクトリに追加
   bindir.add(new File("ls", 100));
   bindir.add(new File("vi", 200));
   otakidir.add(new File("sample.c", 100));
   // ディレクトリにディレクトリを追加
   rootdir.add(bindir);
   rootdir.add(homedir);
   // ディレクトリリストの表示
   rootdir.printList();
  }
----
{{category オブジェクト指向プログラミング(C317-2)}}