Java入門⑮ メソッド ── 処理に名前をつけて、まとめる
Java入門⑮ メソッド ── 処理に名前をつけて、まとめる
前回まで、データのまとまり(配列・ArrayList・Map)をやってきました。
今回からは、こんどは処理をまとめる話です。その第一歩、メソッドです。
メソッドとは、いくつかの処理をひとまとめにして、名前をつけたものです。
なぜ、処理をまとめるのか
プログラムを書いていると、同じような処理を、何度も書くことがあります。
たとえば「あいさつを表示する」3行の処理を、プログラムの3か所で使いたいとします。すると、同じ3行を3回コピーすることに。内容を変えたくなったら、3か所すべてを直す必要があります。面倒だし、直し忘れも起きます。
そこで、この処理に名前をつけてまとめます。それがメソッドです。料理でいうなら、「野菜を洗って、皮をむいて、切る」に「下ごしらえ」と名前をつけるようなもの。「下ごしらえして」の一言で済みますよね。
書き方を見てみる
あいさつを、メソッドにまとめます。
public class Main {
public static void main(String[] args) {
greet(); // 呼び出す
}
static void greet() { // メソッドの定義
System.out.println("ようこそ");
System.out.println("当店をご利用ありがとうございます");
}
}
greet() という名前の処理ができました。形を見てみましょう。
static… 今は「おまじない」でOK(後の回で触れます)void… このメソッドは「結果を返さない」という印(次回くわしく)greet… メソッドにつけた名前()… カッコ(中身は次回){ }… この中に、まとめたい処理を書く
そして、main の中の greet(); で、このメソッドを呼び出しています。
「作る」と「呼ぶ」は別
メソッドは、作っただけでは動きません。名前を呼んで(呼び出して)使います。
greet(); // あいさつが表示される
3か所で使いたいなら、3回呼べばいい。greet() と書くだけ。3行をコピーする必要はありません。そして、あいさつ内容を変えたくなったら、メソッドの中身を1か所直すだけで、呼んでいる全部に反映されます。
メソッドの、もうひとつの利点
メソッドは、「くり返しを減らす」だけが目的ではありません。プログラムを読みやすくするのも、大きな役割です。
greet();
showMenu();
takeOrder();
中身が分からなくても、「あいさつして、メニューを見せて、注文を取る」という流れが一目で分かります。処理に名前がついていると、プログラムが「読める文章」のようになるんです。これは、コードが長くなるほど効いてきます。
(Javaのメソッド名は、greet、showMenu のように、小文字で始めるのが慣習です。2語目から大文字にする「キャメルケース」という書き方をよく使います。)
つまずきポイント
学生がつまずくのが、作っただけで、呼び出すのを忘れることです。
static void greet() {
System.out.println("ようこそ");
}
// greet() を呼んでいない! → 何も表示されない
メソッドは、「作る」と「呼ぶ」は別です。作っただけでは、中身は実行されません。レシピを書いただけでは料理ができないのと同じで、「下ごしらえして」と実際に呼ばないと動かないのです。
「何も表示されないな?」と思ったら、「呼び出し、書いたかな?」と確認してみてください。
まとめ
メソッドは、処理に名前をつけてまとめたもの。
static void greet() { // 作る
System.out.println("ようこそ");
}
greet(); // 呼び出す
- 同じ処理のくり返しを減らせる
- 名前をつけることで、プログラムが読みやすくなる
- 「作る」と「呼ぶ」は別。呼び出しを忘れずに
- メソッド名は小文字で始める(慣習)
次回は、メソッドに情報を渡したり、結果を受け取ったりする 引数と戻り値 です。

