Java研修資料

メソッド

Java文法目次へ

A:mainの中にたくさんの処理を詰め込むと理解しにくくなります。処理を分割しましょう。別のメソッドを作ります。

B:メソッドというのは何ですか。

A:mainもメソッドの一つです。これはJavaから呼び出されました。我々のプログラムの入り口でした。main()に似たメソッドを作って、main()から呼び出せます。概略を書くと次のようになります。

 

public static void main(String[] args) {

    ...

    a = averageHeight(h);

}

 

public static int averageHeight (int[] h){

    ...

    return a;

}

 

B:public static void main(String[] args) とpublic static int averageHeight()を比較すると、voidがintに、mainがaverageHeightになり、()の中がString[] argsであったところが、int h[]になっています。

A:mainがaverageHeightになるのは違った名前を付けたからです。()内は引数(パラメータ)を書きます。averageHeightは、全員の身長をこの引数で受け取ります。

B:voidとintは?

A:これらはは戻り値の型です。voidは戻り値がないことを意味します。intは戻り値の型がint型であることを意味します。averageHeightは、計算した平均値を戻す予定です。

B:戻り値の型の前のpublic staticというのは何ですか? main()とaverageHeight()双方とも同じ指定になっていますが。

A:これを理解するにはクラスやオブジェクトの知識が必要です。文法を学習している間は、「マントラ」(ありがたいおことば)として、そのまま使い、気にかけないで進みましょう。

B:そうですか。

A:すこし未練があるかもしれませんが、少し経てば理解できるレベルに達します。それでは、テストのための新しくクラスを作ります。HelloJava2にします。HelloJava1でmain()に詰め込んだ内容をmainとaverageHeight()に分けて下さい。hの初期化はmain()に残し、引数で渡します。

B:はい。こうなりました。

package basic;

 

public class HelloJava2 {

    public static void main(String[] args) {

        int h[] = {1545,1370,1477};  // 身長の初期化

       

        // 平均身長を計算する。

        int a = averageHeight(h);

        System.out.println("平均=" + a);

    }

    /*

     * 身長の平均値を計算する

     */

    public static int averageHeight(int[] h){

        int i;

        int m;

        m=0;

        for(i=0; i<3; i++){

            m= m+h[i];

            System.out.println(m);

        }

        int a = m/3;

        return a;

    }

}

 

A:OKです。メソッドの作り方はこれで終わりです。

以上