メソッドの意味
メソッドはある一連の処理を一つの処理の単位として記述するものです。これはコードを見やすくさせることでもありますし、その処理が間違った場合に修正を一箇所にすることができます。
メソッドを使わない以下の例をみてください。これは温度の摂氏を華氏に変換しているコードです。
double degree_c; double degree_f; degree_c = 0; degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。"); degree_c = 30; degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。"); degree_c = 60; degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。"); degree_c = 90; degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。");
doubleというのは基本データ型で小数を扱うものです。実行結果は以下の通りです。
摂氏0.0度は華氏32.0度です。 摂氏30.0度は華氏86.0度です。 摂氏60.0度は華氏140.0度です。 摂氏90.0度は華氏194.0度です。
これはこれで動作するのですが同じ処理を何度も書かなければいかないですしコードの量も多いです。
staticメソッドの作成
ここでメソッドを作成します。メソッドを最初に作る場合はstaticメソッドから作ると良いでしょう。staticとは「静的にアクセスする」という意味ですがここでは「常に同じ動作をする」という意味で考えてよいでしょう。
ここでは与えられた摂氏の温度をもとに華氏に変換して標準出力に出力するところまでをめメソッドにします。
static void convertToF(double degree_c){ double degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。"); }
先頭にstaticをつけたあとこのメソッドが戻す値がないことを示すvoidと記述しそのあとにメソッド名を書きます。メソッド名は中でなにをやっているかわかるものにしておくと良いです。とはいっても何度も呼び出すことを考えるとあまり長くはしないほうが良いでしょう。
メソッド名のあとの( )には必要であれば引数を指定します。指定の方法は型と変数名です。必要であればカンマ,で複数個指定します。
このメソッドを呼ぶには
convertToF(0); convertToF(30); convertToF(60); convertToF(90);
最初のコードから比べてスッキリしましたし。処理がなにをやっているのか見やすくなりました。また出力内容の修正や計算式の変更があればconvertToFメソッドの中身を修正すれば4回読んだ全てで変更が反映されます。これは最初のコードにはないメリットです。
実行結果は最初のものと同じです。
最後にコード全体を載せておきます。これはSample1.javaというファイルで保存しjavac Sample1.javaでコンパイルしjava Sample1で実行します。
public class Sample1 { public static void main(String[] args) { convertToF(0); convertToF(30); convertToF(60); convertToF(90); } static void convertToF(double degree_c){ double degree_f = degree_c * 9 / 5 + 32; System.out.println("摂氏" + degree_c + "度は華氏" + degree_f + "度です。"); } }