みんなで挑戦! OCJP Bronze SE 7 資格。

duke

皆さま。こん**は。

9月22日よりOCJP Bronze SE 7資格のJava SE 7 Bronze(1Z0-802)試験を開始しました!
さらにOCJP Bronze SE 7資格のNext StepになるOCJP Silver SE 7資格のJava SE 7 Programmer I試験も開始されています。OCJP Bronze SE 7資格を取得された方は是非チャレンジください。
(OCJP Bronze SE 7とOCJP Silver SE 7の違いはこちらを参照ください。)

OCJP Bronze SE 7 資格とは?
bronze_logoOCJP Bronze SE 7資格はJava言語を初めて学習する方を対象としています。Javaの基本構文やオブジェクト指向の考え方、およびクラスやインタフェースを用いたオブジェクト指向プログラミングについて理解できているかどうかが問われます。これにより本格的な開発業務に携わっていくための基礎知識を有するエンジニアであることを認定します。

具体的にどんなトピックが試験範囲に含まれるかはテスト内容チェックリストをご確認いただければと思いますが、試験で出題されるトピックについて何回かにわけてご紹介してきたいと思います。


出題トピックのおさらい:
今回おさらいするトピックも『データの宣言と使用』です。
前回はプログラムでのデータの扱いについて扱いましたが、本日はコマンドライン引数の利用についてご紹介します。

引数とは?
Javaプログラムでメソッドを実行するときに渡される値と、その値に名前をつけてメソッド内で変数として扱えるようにするためのものです。コマンドライン引数はJavaプログラムが起動するときに渡される値です。

ところでjavaコマンドによってJavaプログラムが起動するときに実行されるメソッドは何だったでしょうか? そうですね。mainメソッドです。つまり、コマンドライン引数とはmainメソッドに渡される引数ということになります。

mainメソッドの書き方:
    public static void main(String[] args) {
        // ...
    }

この中で引数は、mainの後ろにある括弧の部分 (String[] args) が相当します。argsはString型の配列として宣言されています。

プログラム実行時のコマンドライン引数はどのように指定するのでしょうか?ためしにコマンドライン引数を指定してJavaプログラムを実行してみましょう。

コマンド実行例:
    > java Test Sample 100


引数はクラス名の後ろにスペース区切りで記述していきます。この例ではクラス名Testの後ろにあるSampleと100が引数です。これがString型の配列argsに格納されてmainメソッドの引数として渡されます。

引数の有効範囲(スコープ)はメソッドになるので、コマンドライン引数はmainメソッドの中ではargsという名前で参照できます。任意の引数にアクセスする場合は、配列のインデックス(添字)を指定します。配列のインデックスは0からスタートするので、1番目の引数にアクセスするには以下のように記述します。

    String str1 = args[0];


インデックスに該当する引数が存在しない、つまりインデックス番目の配列の要素が存在しない場合は、プログラム実行時に例外(java.lang.ArrayIndexOutOfBoundsException)がスローされます。

TIPS: 引数は全てStringで渡されるので渡された引数を数値にしたい場合は
    int num = Integer.parseInt(args[1]);
のように変換を行なってください(Integer.parseInt(String)メソッドについては未だ別の機会に)。

プログラム実行時に渡される引数をすべて表示するサンプルプログラムを作ってみましょう。


サンプル(Test.javaというファイル名で保存):
  1. public class Test {
  2.     public static void main(String[] args) {
  3.         for(int i = 0; i < args.length; i++) {
  4.             System.out.println(i + 1 +" 番目の引数:" + args[i]);
  5.         }
  6.     }
  7. }


実行結果:
> java Test Sample 100
  1番目の引数:Sample
  2番目の引数:100

いかがでしょうか? 普段何気なく使っているとあまり気にしない部分かもしれませんが、認定試験では基本事項を理解できているかどうかが問われますので引数についても整理しておきましょう。



最後に試験問題の雰囲気を把握するために例題を見てみましょう。
例題:
次のプログラムがあります。
  1. public class Test2 {
  2.     public static void main(String[] args) {
  3.         System.out.println(args[2]);
  4.     }
  5. }
このプログラムを次のように実行した結果を正しく説明しているものはどれですか?
  > java Test2 1 2

A. 1 が表示される
B. 2 が表示される
C. 何も表示されない
D. 例外が発生する

正解:
D. 例外が発生する

引数はString型の配列です。配列のインデックスは0からスタートするのでargs[2]は配列の3番目の要素を指定してます。ところが例題では引数は2つだけ指定されているので配列argsの要素数は2です。args[2]は配列の3番目のインデックスを表しており、例題では存在しない配列要素にアクセスしようとしているのでjava.lang.ArrayIndexOutOfBoundsExceptionが発生します。


おすすめ研修:
OCJP Bronze SE 7 / OCJP Silver SE 7に対応した研修『Java SE 7 プログラミング I』が間もなく登場します。研修実施の準備が整いましたら改めてご案内しますのでご期待ください。

サンプル問題:
Java SE 7 Bronze(1Z0-802)試験のサンプル問題<Link to: http://www.oracle.com/jp/education/certification/1z0-802-sample-question-1851335-ja.html >が公開されているのをご存知でしたか?問題試験の出題形式や難易度の目安にご活用ください(問題数は7問です)。

それではまた。

Comments:

Post a Comment:
Comments are closed for this entry.
About

Inside ORACLE MASTER - ORACLE MASTERに関連する最新情報をお届けします。

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today