
―Javaプログラミングの前提知識―
2003/2/27
| 明示的な割り当てをしない配列 |
| ワンポイントQuestion |
次のjavaコマンドでArray.classを実行したときの出力結果を説明している文として、正しいものはどれですか? (単一選択)
>java CreateArray aa bb cc dd |
1: class Array{ |
|
| 配列の宣言方法 |
本設問にあるArrayクラスはint型のiとString型のstrと2つの配列をメンバ変数として定義しています(プログラム2、3行目)。
メンバ変数に明示的に初期値を設定しない場合、変数の型に応じて自動的にデフォルト値が割り当てられます。
変数がint型であればデフォルト値は0、String型であればnullとなります。
本設問では配列iとstrは宣言と領域確保のみで、明示的な初期値の設定なしにprintArrayメソッド(5〜8行目)の処理に利用されています。
よって、int型である配列iの初期値には「0」、String型の配列であるstrの初期値には「null」が配列要素として代入されます。
問題文のプログラムでは、13、14行目にてArrayクラスのオブジェクトをつくりprintArrayメソッドを実行し、配列iとstrの3番目の要素を出力しています。このとき出力されるのは自動的に割り当てられたデフォルト値です。
次に、16行目からのfor文にてコマンドラインから入力した値を配列strに順次代入し、その結果を出力します。
処理はfor文で繰り返し処理をおこないますが、繰り返しの終了条件が「j < args.length」なので、問題文にあるようにプログラム実行時に値を4つ入力すると終了条件がj<4となるため、str配列の要素数3よりも1回多く繰り返しがおこなわれることになり、正常終了しません(下図)。その際、ArrayIndexOutOfBoundsExceptionの例外が発生します。
![]() |
| 配列の外をアクセスしたようす |
| POINT | ||||||||||
|
クラス要素として宣言される変数をメンバ変数といいます。メンバ変数は明示的に初期値を設定しないと、変数の型に応じたデフォルト値が自動的に割り当てられます。各基本データ型変数に定義されたデフォルト値の一覧では次のとおりです。
参照データ型変数のデフォルト値はnullです。配列は参照データ型の変数なので、デフォルト値はnullになります。 |
| KEYWORD |
|
■メンバ変数とローカル変数 |
| ワンポイントQuestionの解答 |
正解 C
| Java2ラーニングブック
−310-035 編− 本記事は@ITハイブックスシリーズ「Java2ラーニングブック −310-035 編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。 |
![]() |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


