メソッドの使い方

広告

まずはどのような場合にメソッドが使われるのかを確認していきます。(繰り返しになりますが、クラスの機能を実現するためのメソッドの使い方ではなく、ここではメソッドを関数のように使用する場合で考えます)。

次の例を見て下さい。

public static void main(String args[]){

  int eigo = 78;
  int suugaku = 90;

  System.out.print("英語の試験結果は");
  if (eigo > 80){
    System.out.println("合格です");
  }else{
    System.out.println("不合格です");
  }

  /* 何か別の処理1 */

  /* 何か別の処理2 */

  System.out.print("数学の試験結果は");
  if (suugaku > 80){
    System.out.println("合格です");
  }else{
    System.out.println("不合格です");
  }
}

if文が2回使われていますが条件式の中で使われている変数以外は同じです。上記では2回だけですがこれが3回も4回も同じような処理が記述されていくと無駄に長いプログラムとなってしまいます。

2つのif文が続けて記述されているのであれば配列と繰り返し処理を使って次のように記述することもできます。

public static void main(String args[]){

  int seiseki[] = {78, 90};
  String kyoka[] = {"英語", "数学"};

  for (int i = 0; i < 2; i++){
    System.out.print(kyoka[i] + "の試験結果は");
    if (seiseki[i] > 80){
      System.out.println("合格です");
    }else{
      System.out.println("不合格です");
    }
  }
}

ただ、同じような処理を行う複数の文が、プログラムの中で離れたところに記述されていた場合はこの方法は使えません。このような時にはメソッドを使うと便利です。

メソッドは複数の処理をまとめたものです。プログラムの中からメソッドを呼び出すと、そのメソッドで記述された処理が実行されます。先ほどの例をメソッドを使って書き直すと次のようになります。

public static void main(String args[]){

  int eigo = 78;
  int suugaku = 90;

  check("英語", eigo);

  /* 何か別の処理1 */

  /* 何か別の処理2 */

  check("数学", suugaku);
}

private static void check(String kyoka, int seiseki){
  System.out.print(kyoka + "の試験結果は");
  if (seiseki > 80){
    System.out.println("合格です");
  }else{
    System.out.println("不合格です");
  }
}

「check」という名前のメソッドを一つ用意しました。このメソッドにはif文を使った画面出力の処理が記述されています。プログラム本体からは必要な時にこのメソッドを呼び出すと、メソッド内に記述された一連の処理が実行されることになります。

このようにメソッドを使うことで何度も実行される一連の処理をひとまとめにしておき、必要に応じて呼び出して実行させることができるようになります。

サンプル

では簡単な例で試しておきます。

JSample1_1.java

class JSample1_1{
  public static void main(String args[]){
    int eigo = 78;
    int suugaku = 90;
    int kokugo = 68;

    check("英語", eigo);
    check("数学", suugaku);
    check("国語", kokugo);
  }

  private static void check(String kyoka, int seiseki){
    System.out.print(kyoka + "の試験結果は");
    if (seiseki > 80){
      System.out.println("合格です");
    }else{
      System.out.println("不合格です");
    }
  }
}

コンパイル後に実行すると次のように表示されます。

p1-1

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)