平成23年秋期試験午後問題 問11
問11 ソフトウェア開発(Java)
次のJavaプログラムの説明及びプログラムを読んで,設問1,2に答えよ。
(Javaプログラムで使用するAPIの説明は,こちらを参照してください。
〔プログラムの説明〕
名前及び住所からなる住所録のエントリの追加,削除及び検索を行う住所録管理プログラムであり,次のクラスからなる。
入れ子クラス AddressBook.Entry は,インタフェース Searchable を実装する。メソッド meets は,引数で与えられた SearchCriteia の具体的な型によって,name 又は addr のメソッド meets を呼び出し,この AddressBook.Entry のインスタンスが引数で指定された検索条件に合致するかどうか調べる。
なお,クラス Name,Address,AddressBook.Entry は,インタフェース Set で使用できるように,クラス Object のメソッド equals 及び hashCode を上書きしているものとする。また,各コンストラクタ及びメソッドの引数は正しいものとする。
クラス Test は,この住所録プログラムのテストプログラムである。メソッド main を実行すると,次の結果が得られた。
(Javaプログラムで使用するAPIの説明は,こちらを参照してください。
〔プログラムの説明〕
名前及び住所からなる住所録のエントリの追加,削除及び検索を行う住所録管理プログラムであり,次のクラスからなる。
- クラス Name は,姓及び名をそれぞれ文字列で保持する。
- クラス Address は,郵便番号及び住所を保持する。郵便番号は,上位3桁と下位4桁をそれぞれint型の整数で保持する。住所は,文字列で保持する。
- クラス AddressBook は,住所録である。入れ子クラス AddressBook.Entry は,住所録のエントリであり,NameとAddressのインスタンスを保持する。クラス AddressBook は,エントリを追加及び削除するメソッドをもつ。
- インタフェース SearchCriteria は,検索条件を示すデータ型であり,メソッドをもたない。
- インタフェース Searchable は,これを実装するクラスが検索条件を与えて検索可能であることを示す。 検索するときは,メソッド meets を呼び出す。
- 入れ子クラス Name.Criteria は,引数 familyName 及び givenName でそれぞれ姓及び名を検索条件として 指定する。検索条件に含めないときは,nullを指定する。
- クラス Name は,インタフェース Searchable を実装する。メソッド meets は,引数で与えられた criteria で 実装されたメソッドを呼び出し,このクラスのインスタンスが検索条件に合致するかどうか調べる。
- 入れ子クラス Address.Criteria は,引数 postalCode3,postalCode4 及び addr でそれぞれ郵便番号の上位3桁,下位4桁及び住所を検索条件として指定する。検索条件に含めないときは,postalCode3 及び postalCode4 は負の値,addr はnullを指定する。住所については,部分文字列が一致する場合も合致しているとみなす。例えば,"京都"は"東京都"の部分文字列なので,合致するとみなす。
- クラス Address は,インタフェース Searchable を実装する。メソッド meets は,引数で与えられた criteria で実装されたメソッドを呼び出し,このクラスのインスタンスが検索条件に合致するかどうか調べる。
入れ子クラス AddressBook.Entry は,インタフェース Searchable を実装する。メソッド meets は,引数で与えられた SearchCriteia の具体的な型によって,name 又は addr のメソッド meets を呼び出し,この AddressBook.Entry のインスタンスが引数で指定された検索条件に合致するかどうか調べる。
なお,クラス Name,Address,AddressBook.Entry は,インタフェース Set で使用できるように,クラス Object のメソッド equals 及び hashCode を上書きしているものとする。また,各コンストラクタ及びメソッドの引数は正しいものとする。
クラス Test は,この住所録プログラムのテストプログラムである。メソッド main を実行すると,次の結果が得られた。
広告
設問1
プログラム中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
- SearchCriteria
- SearchCriteria<Name>
- SearchCriteria<String>
- Searchable
- Searchable<Name>
- Searchable<String>
b,c に関する解答群
- book.add(entry)
- book.add(sc)
- book.remove(entry)
- book.remove(sc)
- result.add(entry)
- result.add(sc)
- result.remove(entry)
- result.remove(sc)
d,e に関する解答群
- Address.Criteria
- Criteria
- Entry.Criteria
- Name.Criteria
- SearchCriteria
解答選択欄
- a:
- b:
- c:
- d:
- e:
- a=ア
- b=オ
- c=キ
- d=オ
- e=ア
解説
この設問の解説はまだありません。設問2
クラス Test において,住所録 addrbook に登録されている全エントリを取得する方法として正しい答えを,解答群の中から二つ選べ。ここで,プログラム中の には,正しい答えが入っているものとする。
解答群
- addrbook.meetsAllOf(new Name.Criteria("", ""))
- addrbook.meetsAllOf(new Name.Criteria(null, null))
- addrbook.meetsAllOf(null)
- addrbook.meetsAnyOf(new Name.Criteria("", "")
- addrbook.meetsAnyOf(new Name.Criteria(null, null))
- addrbook.meetsAnyOf(null)
解答選択欄
- イ
- オ
解説
この設問の解説はまだありません。広告