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]) が正解。 |
匿名様 ご投稿
メニューへ戻る