TOP書籍連動> 解答
徹底攻略Java 2プログラマ問題集 Platform 1.4対応
徹底攻略Java 2プログラマ問題集 Platform 1.4対応

第1回:クラス定義とアクセス制御
著者:八木裕乃/明壁敦子
監修者:須澤秀人  編者:ソキウス・ジャパン   2005/7/14
前のページ  1  2
解答

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

   配列を利用する場合、まず、ほかの変数と同様に、変数を宣言する必要があります。宣言方法は以下のとおりです。

データ型 変数名[];

   データ型は、配列に格納する要素のデータ型を指定します。また、配列型ということを示すには[ ]を利用します。2次元配列の場合は2つの[ ]を付けます。Javaでは、[ ]を付ける場所は変数名の後ろ、データ型の後ろのどちらでも構いません。各選択肢に関する説明は以下のとおりです。

A 正しい宣言です。float型のデータを要素に持つ1次元配列fを宣言しています。
B 正しい宣言です。選択肢Aとまったく同様の意味になります。
C 誤った宣言です。宣言では、要素数を指定しません。
D 正しい宣言です。[ ]が2つあるので、float型のデータを要素に持つ2次元配列fを宣言しています。
E 誤った宣言です。選択肢Cと同様の理由です。
F 正しい宣言です。選択肢Dと同様の意味になります。
G 正しい宣言です。選択肢Dと同様の意味になります。D、F、Gのように[ ]の位置を任意に配置することができます。
H 誤った宣言です。データ型の前に[ ]を配置することはできません。

   したがって、宣言が誤っているCEHが正解です。

   また、配列は変数を宣言しただけでは利用できません。領域を確保する必要があります。


第2問の解答: F、H

   配列は以下のステップで利用します。

  1. 配列の変数宣言
  2. 配列を格納する領域の確保
  3. 各配列要素の操作(値の代入、取得)

   ステップ1とステップ2は1文で記述することもできます。ステップ2の領域の確保では、newキーワードを利用します。または、初期値を指定することでも、領域が確保されます。

newキーワードの利用
データ型 変数名[] = new データ型[要素数];

   newキーワードの後ろにどのデータ型のいくつの要素の領域を確保するのかを指定します。

初期値の指定
データ型 変数名[] = new データ型[]{値1,値2};
データ型 変数名[] = {値1,値2};

   値は、{ }内に列挙します。格納するデータ型に合わせた値を並べます。値の前に、new データ型[ ]を記述することもできます。その場合、[ ]内には要素数を記述できません。

   選択肢A、B、Cの左辺は[ ]がなく、配列の宣言ではありません。選択肢Aの右辺ではFloatオブジェクトを作成してfloat型に代入しようとしているのでコンパイルエラーになります。選択肢Bの右辺では、float型の領域をnewで確保するためには( )ではなく、[ ]とする必要があります。選択肢Cの右辺では、正しく3つのfloat型を格納する配列の領域が確保されますが、左辺が配列型ではないのでコンパイルエラーになります。

   選択肢Dは、右辺で配列の要素数が指定されていないので、コンパイルエラーになります。

   選択肢Eは、左辺の配列変数の宣言で要素数を指定することはできないのでコンパイルエラーになります。

   選択肢Fは、3つのfloat型の初期値を持つ配列を正しく宣言しています。

   選択肢Gは、右辺に初期値を与える場合は要素数は記述できず、コンパイルエラーになります。

   選択肢Hは、3つのfloat型の初期値を持つ配列を正しく宣言しています。

   したがって、FHが正解です。

第3問の解答: D

   メンバ変数やメソッドのアクセス修飾子には4種類あります。

   publicはどのクラスからもアクセスが可能ですが、protectedは自クラスと違う、ほかのパッケージ内にあるサブクラスではないクラスからはアクセスできません。デフォルトアクセスは、同一パッケージのクラスからのみのアクセスとなります。privateは自クラスからのアクセスのみ許されます。したがって、Dが正解です。

アクセス修飾子 ○はアクセス可能であることを示す
アクセス
修飾子
同一
クラス
ほかのクラス
同一
パッケージ
ほかのパッケージ
サブクラス サブクラスではない
public
protected ×
デフォルトアクセス
(指定なし)
× ×
private × × ×


第4問の解答: A、D

   コンストラクタは、オブジェクトの生成時に呼び出される特殊なメソッドです。以下の2点以外は通常のメソッドと同様です。

  • 戻り値の指定ができないこと
  • メソッド名がクラス名と同じであること

   よって、コンストラクタも引数を任意に取ることができ、オーバーロードが可能です。

   また、コンストラクタは、オブジェクトの生成時に一度だけ呼び出されるので、メンバ変数の初期化などを記述する場合に宣言します。必要がなければ記述しません。引数の有無に関わらず、1つもコンストラクタを宣言しなかった場合のみ、コンパイラはデフォルトコンストラクタという引数なしのコンストラクタを追加します。したがって、ADが正解です。


第5問の解答: C

   サブクラスのコンストラクタは、最初に必ずスーパークラスのコンストラクタを呼び出します。

class Child extends Parent{ }

   上記のChildクラスのデフォルトコンストラクタは、以下のようになります。

Child(){
      super();
}

   よって、スーパークラスにデフォルトコンストラクタや引数のないコンストラクタが定義されていない場合には、サブクラスでコンストラクタを宣言し、スーパークラスのコンストラクタを明示的に呼び出す必要があります。

   選択肢Aはスーパークラスにコンストラクタの宣言がなく、デフォルトコンストラクタが作成されるのでコンパイルは正しく終了します。

   選択肢Bはスーパークラスに引数がないコンストラクタを明示的に宣言しているので、サブクラスではコンストラクタを宣言しなくても、コンパイルは正しく終了します。

   選択肢Cでは、スーパークラスに引数が1つあるコンストラクタだけが記述され、サブクラスのデフォルトコンストラクタから呼び出される引数がないコンストラクタが存在しないので、コンパイルエラーになります。

   この場合、サブクラスにコンストラクタの明示的な定義が必要になります。以下を参照してください。

class Child extends Parent{
      Child( int i ){
            super( i );
      }
}

   選択肢Dでは、スーパークラスに引数がないコンストラクタもオーバーロードしてあるため、コンパイルは正しく終了します。

   したがって、Cが正解です。

前のページ  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
第1回:クラス定義とアクセス制御
  問題
解答