以前、Javaのプログラムが上から順番に実行されるって話をしましたね。今回はその続きで、**「メソッド」**について深掘りしていきましょう!「メソッド」って聞くと、ちょっと難しそうに感じるかもしれませんが、実はとっても便利で、プログラムをスッキリさせる魔法の道具なんです。
さて、前回の記事で「プログラムは上から順番に実行される」と話しました。これは基本中の基本ですが、もし同じ処理を何度も書くことになったらどうでしょう?例えば、「こんにちは!」と3回表示するプログラムがあったとします。
Java
public class Greeting {
public static void main(String[] args) {
System.out.println("こんにちは!");
System.out.println("こんにちは!");
System.out.println("こんにちは!");
}
}
これでも動きますが、もし「こんにちは!」を「こんばんは!」に変えたいと思ったら、3箇所も直さなきゃいけませんよね。これが100回だったら…考えただけでも大変です!
そこで登場するのが今回の主役、**「メソッド」**です!メソッドは、複数の処理をひとまとめにして、名前をつけたものだと考えてください。この「ひとまとめにした処理」を、必要な時に呼び出すことができるんです。
イメージとしては、お料理のレシピと似ています。例えば、「カレーを作る」というレシピがあったとします。このレシピの中には、「材料を切る」「炒める」「煮込む」といった細かい手順が入っていますよね。一度「カレーを作る」というレシピを作ってしまえば、あとは「カレーを作る」と伝えるだけで、一連の作業をまとめて実行できるようになります。メソッドもこれと同じで、特定の処理をひとまとまりにして、「この処理をやりたい!」と名前で呼び出すことができるんです。
メソッドの書き方を見てみよう!
まずはシンプルなメソッドの形を見てみましょう。
Java
アクセス修飾子 戻り値の型 メソッド名(引数リスト) {
// 実行したい処理
}
なんか呪文みたいですよね(笑)。でも大丈夫、ひとつずつ解説していきますね!
アクセス修飾子: これは「どこからこのメソッドを呼び出せるか」を決めるものです。今はとりあえず、publicと書いておけばOKです。publicは「どこからでも呼び出せるよ!」という意味です。戻り値の型: これは「このメソッドが処理を終えた後、どんな種類のデータを返すか」を示します。もし何も返さない場合は、voidと書きます。voidは「何も返さないよ!」という意味です。メソッド名: これは自分で自由に決める名前です。どんな処理をするのか、分かりやすい名前をつけると後で見返したときに「ああ、これはあの処理をするメソッドだな」とすぐにわかります。例えば、挨拶をするならgreet、計算をするならcalculateなどですね。Javaではメソッド名の最初の文字は小文字にするのが一般的です。(引数リスト): これは「このメソッドにどんなデータ(材料)を渡して処理を実行するか」を指定する部分です。例えば、お料理のレシピで「具材」を渡すように、メソッドにも処理に必要なデータを与えることができます。何も渡さない場合は空の()でOKです。
これだけだと分かりにくいので、先ほどの「こんにちは!」の例をメソッドを使って書き直してみましょう。
Java
public class GreetingMethod {
// 挨拶をするメソッド
public static void sayHello() {
System.out.println("こんにちは!");
}
public static void main(String[] args) {
// sayHelloメソッドを呼び出す
sayHello(); // 1回目
sayHello(); // 2回目
sayHello(); // 3回目
}
}
どうですか?sayHello()という新しいブロックができましたね。このsayHello()がメソッドです。mainメソッドの中からsayHello();と書くだけで、System.out.println("こんにちは!");が実行されます。
これなら、「こんにちは!」を「こんばんは!」に変えたい時も、sayHelloメソッドの中身を1箇所直すだけで済みますね!

paizaで実行した結果
引数を使ってもっと便利に!
先ほどのsayHelloメソッドは、いつも「こんにちは!」としか言いませんでした。でも、相手の名前によって挨拶を変えたい時もありますよね?そんな時に便利なのが**「引数(ひきすう)」**です。
引数とは、メソッドに渡すデータのことです。メソッドは、この引数を受け取って、そのデータを使って処理を実行できます。イメージとしては、お料理のレシピで「じゃがいも」とか「にんじん」とかの材料を渡すようなものです。
例えば、名前を受け取って挨拶するメソッドを考えてみましょう。
Java
public class PersonalizedGreeting {
// 名前を受け取って挨拶するメソッド
public static void sayHelloTo(String name) { // (String name) が引数です
System.out.println("こんにちは、" + name + "さん!");
}
public static void main(String[] args) {
sayHelloTo("田中"); // "田中" を渡して呼び出す
sayHelloTo("鈴木"); // "鈴木" を渡して呼び出す
sayHelloTo("佐藤"); // "佐藤" を渡して呼び出す
}
}
この例では、sayHelloTo(String name)というメソッドを作りました。丸括弧の中のString nameが引数です。Stringは文字列のデータ型、nameはこの引数にアクセスするための変数名です。
mainメソッドの中からsayHelloTo("田中");と書くと、nameには"田中"が入って、こんにちは、田中さん!と表示されます。呼び出すたびに違う名前を渡せるので、とっても便利になりました!

paizaで実行した結果
戻り値で計算結果を受け取ろう!
メソッドは、処理の結果を呼び出し元に**「返す」こともできます。これが「戻り値(もどりち)」**です。戻り値は、メソッドの処理が終わった後に、「この結果をどうぞ!」と手渡してくれるデータだと思ってください。
例えば、二つの数字を足し算して、その結果を返してくれるメソッドを作ってみましょう。
Java
public class Calculator {
// 2つの整数を受け取って、合計を返すメソッド
public static int add(int num1, int num2) { // int が戻り値の型
int sum = num1 + num2;
return sum; // sum の値を返す
}
public static void main(String[] args) {
int result1 = add(10, 5); // addメソッドを呼び出して結果を受け取る
System.out.println("10 + 5 = " + result1); // 結果を表示
int result2 = add(100, 200);
System.out.println("100 + 200 = " + result2);
}
}
この例では、add(int num1, int num2)というメソッドを作りました。intが戻り値の型を示しています。これは「このメソッドは整数を返すよ!」という意味です。
メソッドの最後の行にあるreturn sum;は、「sumという変数の値を、このメソッドを呼び出したところに返します」という命令です。
mainメソッドでは、int result1 = add(10, 5);のように、addメソッドの計算結果をresult1という変数に代入しています。これで、計算結果を別の場所で使うことができるようになりました!
もし、戻り値が必要ない場合は、先ほど紹介したvoidを使います。

paizaで実行した結果
mainメソッドって何者?
ここまでで、実は皆さん、ずっとメソッドを使っていました!それが、public static void main(String[] args)です。
そう、mainも立派なメソッドなんです!Javaのプログラムは、このmainメソッドから実行が始まる、というルールになっています。だから、今まで書いてきたプログラムの実行したい処理は、全部mainメソッドの中に書いていたんですね。
なぜメソッドを使うの?メリットはたくさん!
メソッドを使うと、プログラムがとっても読みやすく、管理しやすくなります。具体的には、こんなメリットがあります。
- コードの再利用性アップ! 一度作ったメソッドは、プログラムのどこからでも何度でも呼び出すことができます。同じ処理を何度も書く手間が省けて、効率的です。
- コードの可読性アップ! メソッドごとに役割がはっきりするので、「このメソッドは何をするものか」が一目で分かります。長いプログラムでも、どこで何が行われているのか追いかけやすくなります。
- メンテナンスが楽になる! もし処理の内容を変更したい場合、その処理をまとめているメソッドの中身だけを直せばOKです。あちこち探して直す必要がなくなるので、間違いも減ります。
- 分担作業がしやすくなる! 大きなプログラムを開発する際には、複数人で協力して作業を進めることが多いです。メソッドごとに担当を決めれば、それぞれが独立して作業を進めることができます。
まさに「プログラムをスッキリさせて、扱いやすくする魔法」なんです!
メソッドの練習問題!
最後に、ちょっとした練習問題に挑戦してみましょう。
問題1: あなたの好きな食べ物を引数で受け取って、「私は〇〇が好きです!」と表示するprintFavoriteFoodメソッドを作成し、mainメソッドから呼び出してください。
問題2: 2つの文字列を引数で受け取り、それらを結合した新しい文字列を返すconcatenateStringsメソッドを作成し、その結果をmainメソッドで表示してください。
まとめ
今回はJavaの**「メソッド」**について解説しました。
- メソッドは処理をひとまとめにしたもので、名前をつけて呼び出せる。
public static void メソッド名()のように書く。引数を使うと、メソッドにデータ(材料)を渡して処理させることができる。戻り値を使うと、メソッドの処理結果を受け取ることができる。- メソッドを使うと、コードの再利用性、可読性、メンテナンス性が向上する。
メソッドはJavaプログラミングの基本中の基本であり、非常に重要な概念です。しっかりと理解して、使いこなせるようになりましょう!
これで、プログラムの構造をより深く理解できたのではないでしょうか?次回は、いよいよ**「クラス」**という、Javaの根幹となる概念について触れていきたいと思います!お楽しみに!
これまでの記事はこちらから確認できます! ToolDocs | 様々なツールや技術情報を紹介します


コメント