第13回:java.langパッケージのJava言語の基礎 (2/2)

徹底攻略Java 2プログラマ問題集 Platform 1.4対応
徹底攻略Java 2プログラマ問題集 Platform 1.4対応

第13回:java.langパッケージのJava言語の基礎
著者:八木裕乃/明壁敦子
監修者:須澤秀人  編者:ソキウス・ジャパン   2005/9/6
前のページ  1  2
解答

   1ページ目の問題の解答を掲載します。解答には、問題の正解やその理由だけでなく、用語や重要事項などが詳しく解説されています。
第1問の解答: A

   java.lang.Mathクラスには数値処理をするためのさまざまなメソッドが用意されています。各選択肢に関する説明は以下のとおりです。

A. floorメソッドは、引数に指定したdouble型の値以下の最大の整数を、double型で返すメソッドです。つまり、小数部の切り捨てを行います。たとえば、Math.floor(2.35)は、2.0となります。
B. ceilメソッドは、引数に指定したdouble型の値以上の最小の整数を、double型で返すメソッドです。つまり、小数部の切り上げを行います。たとえば、Math.ceil(2.35)は、3.0となります。
C. roundメソッドは、引数に指定した値に最も近い整数を返すメソッドです。引数にfloat型の値を指定した場合はint型を返し、double型の値を指定した場合はlong型で返します。たとえば、Math.round(2.45)は2に、Math.round(2.50)は3になります。
roundは厳密にいうと四捨五入とは少し違います。(long)Math.floor(a + 0.5d)のように引数の値に2分の1を加えてfloorメソッドで取り、キャストして整数に丸められます。
D. randomメソッドは引数は取らず、0.0以上1.0より小さい値の乱数を返すメソッドです。
E. absメソッドは、引数に指定した値の絶対値を返すメソッドです。引数にはint型、long型、float型、double型を取ることができ、結果も同じ型になります。
F. maxメソッドは2つの引数が必要なメソッドで、引数の値を比較して大きいほうの値を返すメソッドです。
   したがって、Aが正解です。なお、floorメソッドの戻り値はdouble型であるため、int型にキャストしています。


第2問の解答: B、D

   java.lang.Mathクラスの宣言は以下のとおりです。

public final class Math extends Object
   Mathクラスはfinalクラスなので、拡張することはできません(A)。abstractクラスではありませんが、コンストラクタが公開されていない(publicではない)のでインスタンスを作成することはできません(C)。しかし、すべてのフィールド、メソッドはstaticで宣言されているため(B)、インスタンスを作成しなくても利用することができます。

   minメソッドは、2つの引数を取り、小さいほうの値を返すメソッドです。引数の型は、int、long、float、doubleを指定できるようにオーバーロードされています(D)。modメソッドというのは、Mathクラスには未定義です。剰余計算には%演算子を利用します(E)。

   したがって、A、C、Eは誤りで、BDが正解となります。


第3問の解答: G

   まず、05行目の「a = a + 100 + 200」では、+演算子による文字列の連結が左から実行されるので、a + 300と解釈されないことに注意してください。

   03行目から06行目までのStringオブジェクトa、bの参照については次の図のようになります。

03、04行目の終了時
05行目の終了時
06行目の終了時
   したがって、07行目でaを表示すると「ABC100200ABC」が表示されるため、Gが正解です。


第4問の解答: D

   StringBufferオブジェクトはStringオブジェクトと違い、可変長文字列を管理します。Stringオブジェクトでは、文字列を変更するたびに新たにオブジェクトが再作成されるのに対し、StringBufferオブジェクトは、appendメソッドinsertメソッドを利用することで、オブジェクトの再作成は行われず、文字列のみを追加することが可能です。

   03、04行目の終了時、sb1とsb2は同じオブジェクトを参照します。05行目でsb1.append("XYZ")を実行した場合もオブジェクトは元のままなので、sb1、sb2ともに同じ文字列を格納したStringBufferオブジェクトを参照します。さらに、06行目でsb1.append(sb2)を実行すると、sb2に格納された"ABCXYZ"がsb1に格納された"ABCXYZ"という文字列に追加されます。07行目では暗黙的にStringBufferオブジェクトのtoStringメソッドが呼ばれ、格納された文字列が取得され、標準出力に出力します。したがって、Dが正解です。

   07行目でsb2を表示するように変更した場合、sb1とsb2は同じオブジェクトを参照していますので、同じ結果となります。

前のページ  1  2

書籍紹介
徹底攻略Java 2プログラマ問題集
Platform 1.4対応

徹底攻略Java 2プログラマ問題集 Platform 1.4対応 SUN Java認定コースを担当する著者が臨場感ある問題と解説を書き下ろし!出題傾向をカバーする精錬問題を豊富に用意しているので、短期間で効率よく学習できます。実際の出題傾向を問題に盛り込むほか、詳しい解説をそれぞれ用意。単純な正否だけでなく、選択肢ごとになぜこれが正しいか、誤っているかその根拠をていねいに紹介しています。最終章の総仕上げ問題で試験の模擬対策も万全です!
発売日:2004.12.17発売
販売価格:3,360円(税込)

著者プロフィール
八木 裕乃
株式会社CSK 教育サービス事業部に所属。現在は、Java、UMLを利用したオブジェクト指向系の開発講座のコース開発からインストラクションまでを担当。Javaとはα版からの付き合いでそろそろ10年来となる!?取得資格:SJC-P、SJC-WC、OCUP Foundamental、MCSD、オラクルマスターなど著書:「マイクロソフト認定技術資格試験 MCP/MCSE必須用語辞典」(アスキー)



著者プロフィール
明壁 敦子
株式会社CSK 教育サービス事業部に所属。Java、UML、XML、オブジェクト指向、Webアプリケーション開発などの教材作成および講義を担当。Sun認定Javaインストラクタとしては、自らがJavaの習得に苦労した経験から、初心者でも解りやすい講座を心がけている。取得資格:SJC-P、SJC-WC、OCUP Fundamentalなど



監修者プロフィール
須澤 秀人
株式会社CSK 教育サービス事業部に所属。Java、UML、XML、ASP.NET、C、C++などの教材作成および講義を担当。「よく食べよく寝る」が座右の銘。取得資格:SJC-P、SJC-WC、OCUP Fundamentalなど著書:「dBASE?PLUSパーフェクトマスター入門編」(秀和システム)、「基本情報技術者 午後 Java スーパー攻略」(秀和システム・共著)など



編者プロフィール
株式会社ソキウス・ジャパン
クォリティ・メディア・カンパニーを標榜する出版社。2001年11月設立。2002年10月より株式会社インプレスと協業し、これまで30冊近い「徹底攻略問題集」を編纂する。また、自社で月刊「オープン・エンタープライズ・マガジン」を発行、発売している。
http://www.sociusjapan.co.jp/


INDEX
第13回:java.langパッケージのJava言語の基礎
  問題
解答
徹底攻略Java 2プログラマ問題集 Platform 1.4対応
第1回 クラス定義とアクセス制御
第2回 制御文、アサーションと例外処理(1)
第3回 制御文、アサーションと例外処理(2)
第4回 ガーベッジコレクション
第5回 Java言語の基礎(1)
第6回 Java言語の基礎(2)
第7回 演算子とデータのメモリ割り当て(1)
第8回 演算子とデータのメモリ割り当て(2)
第9回 オーバーロード、オーバーライド、実行時のデータ型(1)
第10回 オーバーロード、オーバーライド、実行時のデータ型(2)
第11回 オーバーロード、オーバーライド、実行時のデータ型(3)
第12回 スレッド
第13回 java.langパッケージのJava言語の基礎
第14回 コレクション・フレームワーク

人気記事トップ10

人気記事ランキングをもっと見る