Java 応用問題7 平成15年度秋期問12 解説
解説 |
---|
a: addメソッドでMatrixArithmeticExceptionをスローする条件が aがtrueとなることである。 >オブジェクト this との和が定義されない行列オブジェクトが引数に渡された場合には, >例外 MatrixArithmeticException を投げる。 とあり、thisと引数mの間で行数、列数の不一致がどちらかにあった場合にtrueとする。 double[][] values; で values.length:行数 values[0].length:列数 である。 >カ values.length != m.values.length || > values[0].length != m.values[0].length とすれば、 「(thisとmの)行数が不一致 または (thisとmの)列数が不一致」 の判定処理となる。 c: multiplyメソッドでMatrixArithmeticExceptionをスローする条件が cがtrueとなることである。 >オブジェクト this との積が定義されない行列オブジェクトが引数に渡された場合には, >例外 MatrixArithmeticException を投げる。 とあり、thisの列数と引数mの行数の間で 不一致があった場合にtrueとする。 >エ values[0].length != m.values.length とすれば、 「thisの列数とmの行数が不一致」 の判定処理となる。 b: 3箇所あるbの使用箇所は、 1.public Matrix add(Matrix m)の出口 2.public Matrix multiply(Matrix m)の出口 3.public Matrix multiply(double d)の出口 で、Matrix型のオブジェクトをreturnしなくてはならない。 それぞれの箇所について、それより前にreturnするべきデータは resultとして作成されているが、これはMatrix型ではないため、 resultをデータとして持つMatrixオブジェクトを作成して、 return文に設定する必要がある。 >ウ return new Matrix(result) の処理となる。 d: dではtoString()メソッド出口で、 String型のオブジェクトをreturnしなくてはならない。 値を設定したStringBuffer rep;から文字列を作成する必要があるが、 repを含む選択肢は >エ return new String(rep) >オ return rep >カ return rep.getBytes() >ク System.out.println(rep) であり、 >エ return new String(rep) が正解である。 そのほかの選択肢は、 >オ return rep ->repはString型ではなく、StringBufferはStringのサブクラスでもないため、誤り。 >カ return rep.getBytes() ->getBytes()の戻り値はbyte[]であると考えられるため、誤り。 >ク System.out.println(rep) ->System.out.printlnは標準出力への出力処理であり、誤り。 |
匿名様 ご投稿
メニューへ戻る