02-1: 関数プログラミングとJavaにおけるクラスとメソッド
前章ではmain
メソッドでのプログラミングを行いました。
本章では、メソッドを用いたプログラミングを行っていきます。
メソッドとは、オブジェクト指向においてのサブルーチンです。
ルーチンは、処理の纏まりを表します。
サブルーチンなので、サブの、プログラムの一部の、処理の纏まりです。
従来のオブジェクト指向ではない、インスタンスだの、クラスだの、といった概念を持たないプログラミングでは、関数と呼ばれることがあります。
簡単な例を出してみましょう。
2つの整数を足して100倍した数を作る処理を考えます。
- オブジェクト指向がまだよくわからないので、インスタンスだの、オブジェクトだのは作りません。
- 入力は、2つのINT型変数
a
,b
とします。 - 処理は
(a + b) * 100
です。この処理をkeisan
と呼びます。 - 出力は、計算結果の変数
c
とします。これもINT型です。
これをJavaで纏めると、以下のようになります。
public static void main(String[] args){
int res1 = keisan(100,1);
int res2 = keisan(20,42);
System.out.println(keisan(res1,(res2*2)));
}
static int keisan(int a,int b){
int c = (a + b) * 100;
return c;
}
前章で習ったように、引数を指定しています。呼出し元のmain
からkeisan(100,1)
のように指定しているのがわかるかと思います。計算した値はc
に格納され、その後、return c
が実行されています。return c
で呼出し元に変数c
をReturn(返す)ことをします。そのため、ここで変数c
は返り値と呼ばれます。返り血ではありません。
返った値は、res1
やres2
に格納されていることがわかります。3つ目では、System.out.println()
で挟んでいるのでそのまま出力されます。
ここで重要な点として、static int keisan()
です。static
は静的メソッド(Staticメソッド・クラスメソッド)を生成するという宣言をしています。static
を書かないとインスタンスメソッドというものになります。これは後ほどの章で説明しましょう。
もうひとつint
です。このint
は何を示しているのかというと、返り値のデータ型です。ここで変数c
はINT型なのでint
が指定されているわけです。もし文字列を返したいのなら、String
にすればいいです。
返り値で返せるのは一つだけです。なので、幾つかの情報を返したいときは工夫します。
static int keisan_all(int a,int b){
int[] res = new int[5];
res[0] = a + b;
res[1] = a - b;
res[2] = a / b;
res[3] = a * b;
res[4] = a % b;
return res;
}
ここで配列やList,Mapなどが活躍します。
このように、呼び出しや返り値を利用して処理の入力と結果の出力だけをメインメソッドなどで呼ぶわけです。
次回はクラスメソッドとオーバーロード、再帰処理なども書いていく予定です。