コンテンツにスキップ

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は返り値と呼ばれます。返り血ではありません。
返った値は、res1res2に格納されていることがわかります。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などが活躍します。

このように、呼び出しや返り値を利用して処理の入力と結果の出力だけをメインメソッドなどで呼ぶわけです。

次回はクラスメソッドとオーバーロード、再帰処理なども書いていく予定です。

Example.


最終更新日: 2021年4月30日