Javaにはもちろん既存で使えるメソッド(関数)もあるが、作る場合にはまず宣言をする必要がある。
このページではJavaでの関数の宣言についてご紹介しよう。
目次
Javaメソッドの定義の仕方
メソッドの定義とは、要するに道具を作ることだ。定義に従えば何度でもその道具(メソッド)を呼び出すことができる。
書き方は次のようになる。
修飾子 戻り値の型 メソッド名(引数1, 引数2, 引数3, …引数n) {
命令文;
・・・
return 式;
}
例えば、次のようになる。
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値が戻される。
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]
}
}
実行結果
BMI値 : 22.530864197530864
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] クラス名:メソッドを使ったBMI値の計算
- [2] 変数heightを宣言して、0を代入する。
- [3] 変数weightを宣言して、0を代入する。
- [4] メソッドcalculateBmiを呼び出す。
- [5] bmi値を表示する。
- [6] メソッドcalculateBmiの定義をする。
- [7] bmiにBMI値の計算:体重÷(身長 X 身長)の結果を代入する。
- [8] bmi値を戻す。
なぜメソッドを定義するのか
プログラムは、メソッドを使わなくても書くことができる。ただ、ほとんど必ずプログラムにはメソッドが使われる。
なぜメソッドを使うのかというと、プログラムを分かりやすくし、他のプログラム、他のプログラマーが使えるようにするためだ。例えば、次のプログラムを見てほしい。main()の中のコードだけを見て、このプログラムは何をしているかすぐ分かるだろうか。
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がない。
public class SimpleMethod {//[1]
public static void main (String[] args) {
printHelloWorld();//[2]
}
private static void printHelloWorld() {//[3]
System.out.println("Hello World");//[4]
}
}
実行結果
Hello World
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1] クラス名SimpleMethod
- [2] メソッドprintHelloWorldを呼び出す
- [3] メソッドprintHelloWorldを定義する
- [4] Hello Worldを表示する
まとめ
このページではJavaメソッドの定義方法についてお伝えした。
はじめはよくわからない部分が多いと思うが、だんだん慣れて行くはずだ。とりあえず簡単なものから作成して動かしてみていただきたい。




good