pafuイーランスクール 学んでできる

メニューへ戻る

Java 基礎問題2 平成18年度春期問8 解説

問題の確認

解説
a:
aはPC.installedメソッドで戻り値を求める処理である。
問題文のinstalledメソッドの説明より、
>メソッドinstalledは,指定されたパッチが適用済みのときtrue,未適用のときfalseを返す。
とあるので、putメソッドの引数に指定されたパッチ(String)が適用されている状態ならtrue、
未適用ならfalseを返す処理を選択肢の中から選ぶ。
>ウ installedPatches.contains(patch)
が、
>private List installedPatches = new ArrayList();
>public boolean contains(Object obj)
> オブジェクトobjがリストに含まれる場合にtrue,含まれない場合にfalseを返す。
という説明から、インストール済みのパッチの中に、引数に指定されたパッチが含まれる場合にtrue、
含まれない場合はfalseを返す処理であり、正解である。
他の選択肢は、
>ア installedPatches.isEmpty()
>イ !installedPatches.isEmpty()
>public boolean isEmpty()
> リストが空の場合にtrue,空でない場合にfalseを返す。
リストが空である、ないという条件から、引数のパッチが適用済みということは導き出せない。
>エ !installedPatches.contains(patch)
正解の条件と逆になる。
>オ patch == null
>カ patch != null
は引数がnullであるかの判定で、引数のパッチが適用済みということは導き出せない。

b:
bはDesktopPC、NotebookPCクラスの継承(extends)や実装(implements)を指定する部分である。
問題文より
>(2) クラスPCは,デスクトップPCとノートPCに共通の処理を実現する。
とあるので、両クラスは抽象クラス(abstractクラス)PCを継承している。
>イ extends PC
が正解である。

c:
cはDesktopPC、NotebookPCのコンストラクタ内の処理で、共通の引数String idを
フィールドに値を設定する処理を行う必要がある。
>ア PC()
>イ PC(id)
 ->PCはスーパークラスであり、スーパークラスのコンストラクタの呼び出し方として誤り。
>ウ super()
 ->引数なしのコンストラクタは存在しない
>エ super(id)
 ->スーパークラスのコンストラクタを呼び出して、
  フィールドに値を設定する処理を行うので、これが正解。
>オ this.id = id
 ->privateフィールドにはサブクラスからアクセスできないため誤り。

d:
>for (int i = 0; i < pc.length; i++) {
外側のfor文は、PC(pcの各要素)毎の処理
>for (int j = 0; j < curPatches.length; j++)
内側のfor文は、適用が要求されるパッチ(curPatchesの各要素)毎の処理
dは、下にある
>notApplied.add(curPatches[j]);
が実行される条件であり、notAppliedを使用している箇所は、
>if (!notApplied.isEmpty())
>  System.out.println(" requires " + notApplied);
と適用が要求されるパッチの内、未適用のパッチを表示する処理である。
 pc[i]についてcurPatches[j]が適用されていない場合に
 notAppliedに未適用のパッチ(curPatches[j])を追加する処理とするには
>オ !pc[i].installed(curPatches[j])
が正解。

匿名様 ご投稿

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる