Javaをはじめとしたプログラミング言語では、言語によって呼び方が変わったり、使う状況によって呼び方が変わる専門用語が多く見られます。
本記事では、「パラメーター」に着目して、Javaでのパラメーターの使い方についてご紹介していきます。
目次
Javaのパラメーターとは
Java開発では様々な場面で「パラメーター」という言葉が利用されますが、意味合いとしては「外部から与えられる値」のことを指します。
パラメーターと引数の違い
パラメーターと似た用語として「引数」という言葉が利用されていますが、厳密には異なる意味を持つ用語です。
パラメーターは、メソッドの中で利用するために定義された値のことを指しています。
対して引数は、メソッドを呼び出す際に指定する値のことを指します。
実引数と仮引数
また少しややこしくなりますが、実引数と仮引数という言葉にも注目しておく必要があります。
上述したメソッドの中で利用するために定義された値である「パラメーター」、これが「仮引数」にあたる言葉です。
メソッドを呼び出す際に指定する値は「引数」、これが「実引数」にあたる言葉です。
実引数が実際に設定される値で、仮引数がメソッド内で受け取った値を利用するための変数といったイメージです。
Javaサンプルコードでパラメーターの具体例を確認しよう
文章で表現していても分かりづらい部分が多いと思いますので、実際のサンプルコードを使った具体的な値で「パラメーター」を理解していきましょう。
サンプルコード1
mainメソッドからcalcメソッドを呼び出し、計算結果をコンソールに出力するというサンプルコードです。
public class Main { public static void main(String[] args) { int num1 = 3; int num2 = 5; int result = calc(num1, num2); System.out.println(result); } public static int calc(int num1, int num2) { return num1 * num2; } }
サンプルの場合、8行目のcalcに渡している「num1」と「num2」が引数(実引数)、13行目のメソッドcalcに設定されている「num1」と「num2」がパラメーター(仮引数)にあたります。
サンプルコード2
サンプルコード1では、全く同じ変数名で定義しましたが、引数とパラメーターの変数名は異なっていても問題ありません。
public class Main { public static void main(String[] args) { int num1 = 3; int num2 = 5; int result = calc(num1, num2); System.out.println(result); } public static int calc(int number1, int number2) { return number1 * number2; } }
サンプルコード2は、実行した結果サンプルコード1と全く同じ処理が実行されます。
今回の場合、引数(実引数)が8行目の「num1」と「num2」で、13行目の「number1」と「number2」がパラメーター(仮引数)にあたります。
Javaの起動パラメーターを利用してみよう
ここまででお気づきの方もいらっしゃるかも知れませんが、mainメソッドにもパラメーターとして「String[] args」が記述されています。
これは起動パラメーターと呼ばれるもので、実際に値を渡して利用することが可能です。
実行の構成
今回はEclipseでの設定方法を説明していきます。
まずプロジェクトを右クリックして「実行」→「実行の構成」を選択します。
Javaアプリケーションの中から、今回実行するプロジェクトのメインクラスが表示されていることを確認します。
「引数」タブを選択して、プログラムの引数に起動パラメーターとして設定したい値を入力します。
これで閉じるボタンをクリックすれば、設定完了です。
サンプルコード
今回はシンプルに受け取った起動パラメーターをコンソールに出力するサンプルコードを記述しました。
public class Main { public static void main(String[] args) { System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); } }
実行した結果が下記です。
ポテパン パラメーター てすと
起動パラメーターは文字列型の配列として取得されるため、「args[数値]」のような形式で取得出来ます。
注意点
起動パラメーターを利用する上で注意しておきたいポイントも確認しておきましょう。
引数の数に注意
実行の構成で設定した値が多い分には取得出来ないだけなのですが、少なすぎる場合には下記のようなエラーが発生してしまいます。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2 at Main.main(Main.java:7)
例えば上述したサンプルで実行の構成に設定する値を2つだけにすると、Javaプログラム上で存在しない配列値にアクセスしようとしてエラーが発生してしまうため注意が必要です。
文字列型として受け取る点に注意
実行の構成で引数に数字を指定することは出来ますが、あくまで文字列で受け取ることを意識しておかないと想定しない結果になるので注意しましょう。
例えばプログラムの引数として「1 2 3」を指定したとします。
プログラムは「+」を使って足し算の結果を出力したかったとします。
public class Main { public static void main(String[] args) { System.out.println(args[0] + args[1] + args[2]); } }
この状態で実行すると結果は「6」ではなく、下記のように表示されます。
123
これはプログラムの引数に数字を指定したとしても、あくまで起動パラメーターとして受け取るのは文字列であるため、文字列連結が実施されることによる結果です。
数値として計算したい場合には、下記のようなint型への変換作業が必要となるので意識しておきましょう。
public class Main { public static void main(String[] args) { System.out.println(Integer.parseInt(args[0]) + Integer.parseInt(args[1]) + Integer.parseInt(args[2])); } }
サンプルのため簡略化していますが、変換作業時にエラーが発生する可能性もあるため、エラー処理の記述が必要です。
実行した結果が下記です。
6
さいごに: Javaでパラメーターの扱い方を理解して他言語にも応用しよう
本記事では、パラメーターとは何かといった基礎知識からJavaのサンプルコードを使った具体例までご紹介してきました。
パラメーターの考え方はJava言語に限らず、様々なプログラミング言語で応用可能です。
しっかりと基礎知識を身に着けて、効率的にプログラミング学習が進めるように知識を定着させていきましょう。
起動パラメーターを複数設定したい場合、半角スペースで区切って入力します。