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

メニューへ戻る

Java 基礎問題5 平成16年度秋期問8 解説

問題の確認

解説
a:
aは抽象クラスStoreのputメソッドでDataStoreExceptionをスローする時の条件である。
trueの場合にメッセージに"overflow"を指定したDataStoreExceptionをスローする。
問題文の(1)より、
>格納できるオブジェクトの個数の上限は50である。
>それを超えて格納しようとしたときはDataStoreExceptionを投げる。
とあり、選択肢を見るとフィールドint indexとObject[] dataのlengthの比較処理である。
プログラムの内容から
>Object[] data = new Object[50];
で、data.lengthは50。indexは初期値0でputでインクリメント、
getでデクリメントされるため、
>エ index >= data.length
が正解。
(data[49](50番目)にオブジェクトを格納した後で、
indexが50にインクリメントされ、次回のputで例外となる)

b:
bは抽象クラスStoreのsizeメソッドで戻り値をreturn文に指定する部分である。
問題文の(1)より、
>格納されているオブジェクトの個数を返す。オブジェクトが格納されていないときは0を返す。
とあり、indexは初期値0でputでインクリメントされるため
>エ index
が正解である。

c:
cはStoreのサブクラスFifoStoreのgetメソッド内で、
getの戻り値となるvalueにdata[0]を設定した後、
Object[] dataに格納してあるオブジェクトのインデックスを
-1ずつ変更する処理である。
オブジェクトが格納されているのは、data[0]~data[index-1]であり、
>data[i] = data[i + 1];
の処理をiを0~index-2の範囲で行うことで、
格納してある全てのオブジェクトのインデックスの変更ができる。
>イ int i = 0; i < index - 1; i++
が正解。

d:
dはStoreTestクラスのprintDataメソッドの引数の型である。
printDataメソッドの呼び出し元を見ると、
>printData(fifo);
>printData(lifo);
の2箇所であり、それぞれの型はfifoはFifoStore、lifoはLifoStoreである。
引数の型としてFifoStore、LifoStoreのどちらでも指定可能とするためには、
それぞれの型のスーパークラスであるStoreを引数の型とする必要があり、
>エ Store
が正解。

匿名様 ご投稿

メニューへ戻る

pafuイーランスクール

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