Javaにはもちろん既存で使えるメソッド(関数)もあるが、作る場合にはまず宣言をする必要がある。
このページではJavaでの関数の宣言についてご紹介しよう。
目次
Javaメソッドの定義の仕方
メソッドの定義とは、要するに道具を作ることだ。定義に従えば何度でもその道具(メソッド)を呼び出すことができる。
書き方は次のようになる。
1 2 3 4 5 |
修飾子 戻り値の型 メソッド名(引数1, 引数2, 引数3, …引数n) { 命令文; ・・・ return 式; } |
例えば、次のようになる。
1 2 3 4 |
private static double calculateBmi(double height,double weight){//[6] double bmi = weight / ((height / 100.0) * (height / 100.0));//[7] return bmi;//[8] } |
それでは定義で使われている言葉の説明をしていこう。
メソッド名
メソッドに付けられた名前である。メソッドを呼び出すときは、この名前を用いてメソッドの呼び出しを行う。
引数
引数は、関数に入力する値だと思うとわかりやすいだろう。
数字を入れると「+2されて返ってくる」道具(メソッド)addがあるとすると、add(1)とすれば3と返ってくる。
引数が二つ以上ある場合は、カンマで区切られる。引数がないメソッドももちろんOKだ。
戻り値の型
メソッドの戻す値の型を宣言する。もし、メソッドに戻す値がない場合は、キーワード:voidを使う。
修飾子
修飾子:public protected private abstract static finalなどの中から選んで宣言する。この項目は、省略可能である。また詳しく別の場所で説明する。
return 式
制御をメソッドの呼び出し元に戻す。プログラムを実行中にreturn命令に出会ったら処理を中断して、呼び出されたところに戻る。このとき、returnするものを指定しておくと値を返してくれる。多くの場合は、何らかの値を返すだろう。
引数と戻り値があるメソッドのサンプルプログラム
それでは実際にサンプルプログラムで、メソッドの定義を確認してみよう。
このプログラムは、健康の指標となるBMI値を計算するプログラムだ。体重計には、身長を入力しておくと、このBMI値を表示してくれるものがあるので、計ったことがあるかもしれない。プログラムを見ると、BMI値を求めるためのメソッド:calculateBmiが定義されている。メソッドの引数に身長と体重を渡すと、戻り値に計算されたBMI値が戻される。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class BmiCalculationWithMethod {//[1] public static void main (String[] args) { double height = 180.0;//[2] double weight = 73.0;//[3] double bmi = calculateBmi(height,weight);//[4] System.out.println("BMI値 : " + bmi );//[5] } private static double calculateBmi(double height,double weight){//[6] double bmi = weight / ((height / 100.0) * (height / 100.0));//[7] return bmi;//[8] } } |
実行結果
1 |
BMI値 : 22.530864197530864 |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] クラス名:メソッドを使ったBMI値の計算
- [2] 変数heightを宣言して、0を代入する。
- [3] 変数weightを宣言して、0を代入する。
- [4] メソッドcalculateBmiを呼び出す。
- [5] bmi値を表示する。
- [6] メソッドcalculateBmiの定義をする。
- [7] bmiにBMI値の計算:体重÷(身長 X 身長)の結果を代入する。
- [8] bmi値を戻す。
なぜメソッドを定義するのか
プログラムは、メソッドを使わなくても書くことができる。ただ、ほとんど必ずプログラムにはメソッドが使われる。
なぜメソッドを使うのかというと、プログラムを分かりやすくし、他のプログラム、他のプログラマーが使えるようにするためだ。例えば、次のプログラムを見てほしい。main()の中のコードだけを見て、このプログラムは何をしているかすぐ分かるだろうか。
1 2 3 4 5 6 7 8 9 |
public class BmiCalculationWithoutMethod { public static void main (String[] args) { double h = 180.0; double w = 73.0; double b = w / ((h / 100.0) * (h / 100.0)); System.out.println("値:" + b); } } |
おそらく、ほとんどの人にはこのコードが何をしているのか分からないだろう。それで、操作の内容がよく分かる名前を付けたメソッドを定義して、必要なコードだけをまとめておく。そうすれば、だれでも使いやすい。
引数も戻り値もないメソッドのサンプルプログラム
メソッドに、いつでも引数や戻り値を定義する必要はない。必要ないときは、書かなくてよいのだ。
このプログラムでは、「Hello World!」を表示するメソッドを定義して、そのプログラムを呼び出している。このメソッド定義には、引数も、戻り値もない。非常にシンプルなメソッドだ。
- 引数がない → printHelloWorld( )の( )中に何も定義されていない。
- 戻り値がない → returnがない。
1 2 3 4 5 6 7 8 |
public class SimpleMethod {//[1] public static void main (String[] args) { printHelloWorld();//[2] } private static void printHelloWorld() {//[3] System.out.println("Hello World");//[4] } } |
実行結果
1 |
Hello World |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] クラス名SimpleMethod
- [2] メソッドprintHelloWorldを呼び出す
- [3] メソッドprintHelloWorldを定義する
- [4] Hello Worldを表示する
まとめ
このページではJavaメソッドの定義方法についてお伝えした。
はじめはよくわからない部分が多いと思うが、だんだん慣れて行くはずだ。とりあえず簡単なものから作成して動かしてみていただきたい。
good