Java のメソッドとは?基本の書き方を学ぼう
新人
「Java でメソッドって何ですか?」
先輩
「メソッドとは、プログラムの中で何度も使える処理のかたまりのことだよ。」
新人
「なるほど!でも、どうやって作るんですか?」
先輩
「それじゃあ、基本的なメソッドの作り方を見ていこう!」
1. Java のメソッドとは?(基本的な説明)
Java のメソッドとは、一連の処理をまとめて実行できるプログラムの部品です。メソッドを使うことで、コードの再利用ができ、プログラムがわかりやすくなります。
メソッドを使うメリット
- ✔ コードを短く、わかりやすくできる
- ✔ 同じ処理を何度も使える
- ✔ プログラムの保守や修正が簡単になる
例えば、画面に「こんにちは!」と表示する処理を毎回書くのではなく、メソッドにまとめておけば簡単に再利用できます。
2. メソッドを作る基本的な構文
Java でメソッドを作るときは、次のような構文を使います。
メソッドの基本形
public class MethodExample {
public static void main(String[] args) {
// メソッドの呼び出し
sayHello();
}
// メソッドの定義
public static void sayHello() {
System.out.println("こんにちは!");
}
}
こんにちは!
このプログラムでは、sayHello というメソッドを作成し、メソッドを呼び出すことで「こんにちは!」と表示しています。
メソッドの構成
- ✔ アクセス修飾子(
public):どこからでも呼び出せることを示す - ✔ 戻り値の型(
void):値を返さないことを示す - ✔ メソッド名(
sayHello):メソッドの名前 - ✔ メソッドの本体(
{ ... }):処理の内容を書く
このように、Java のメソッドは決まった形で定義し、呼び出して使います。次の章では、メソッドをより便利に使う方法を学んでいきましょう。
3. 複数の別メソッドを呼び出す方法
Java では、1つのプログラムの中で複数のメソッドを作り、それぞれを呼び出すことができます。
複数のメソッドを呼び出す例
以下の例では、greet() メソッドと sayGoodbye() メソッドを作り、それぞれを main メソッドから呼び出します。
public class MultipleMethods {
public static void main(String[] args) {
// 複数のメソッドを順番に呼び出す
greet();
sayGoodbye();
}
// 挨拶のメソッド
public static void greet() {
System.out.println("こんにちは!");
}
// 別れの挨拶のメソッド
public static void sayGoodbye() {
System.out.println("さようなら!");
}
}
こんにちは!
さようなら!
このように、main メソッドの中で複数のメソッドを呼び出すことで、処理を分けて整理することができます。
4. 同じメソッドを何回も呼び出す
メソッドは、一度作成すれば何回でも呼び出すことができます。ループと組み合わせると、同じ処理を繰り返し実行できます。
同じメソッドを繰り返し呼び出す例
public class RepeatMethod {
public static void main(String[] args) {
// 3回繰り返しメソッドを呼び出す
for (int i = 0; i < 3; i++) {
printMessage();
}
}
// メッセージを表示するメソッド
public static void printMessage() {
System.out.println("Javaのメソッドを学習中!");
}
}
Javaのメソッドを学習中!
Javaのメソッドを学習中!
Javaのメソッドを学習中!
このように、ループを使うと、同じメソッドを何度も実行できます。
5. メソッド名の命名規則について
Java のメソッド名には、一定のルール(命名規則)があります。これを守ることで、コードが読みやすくなります。
メソッド名の基本ルール
- ✔ 小文字から始める(例:
calculateSum) - ✔ 単語の区切りは
camelCase(キャメルケース)を使う(例:printMessage) - ✔ 動詞で始める(例:
getName、setData) - ✔ 分かりやすい名前を付ける(例:
calculateTotalPriceなど)
命名規則に従ったメソッドの例
public class MethodNamingExample {
public static void main(String[] args) {
// 命名規則に沿ったメソッドの呼び出し
printHello();
int sum = calculateSum(5, 10);
System.out.println("合計: " + sum);
}
// 挨拶を表示するメソッド
public static void printHello() {
System.out.println("こんにちは!");
}
// 2つの数値の合計を計算するメソッド
public static int calculateSum(int a, int b) {
return a + b;
}
}
こんにちは!
合計: 15
メソッド名をわかりやすくすることで、プログラムが読みやすくなり、メンテナンスもしやすくなります。
6. メソッド名で使えないもの
Java ではメソッド名を自由に決めることができますが、いくつかのルールがあります。これを守らないと、エラーになってしまうので注意が必要です。
メソッド名に使えないもの
- ✔ **Java の予約語(キーワード)は使えない**(例:
public、class、staticなど) - ✔ **数字で始めることはできない**(例:
1method()はエラー) - ✔ **空白(スペース)を含めることはできない**(例:
print message()はエラー) - ✔ **特殊記号(
! @ # $ % ^ & *など)は使えない**(例:print@Message()はエラー)
メソッド名のルール違反の例
public class InvalidMethodNames {
public static void main(String[] args) {
// test method(); // エラー(スペースを含む)
// int public(); // エラー(予約語を使っている)
// void 1start(); // エラー(数字で始まっている)
}
}
メソッド名を付けるときは、**英字(小文字推奨)から始め、キャメルケース(camelCase)を使う**のが一般的なルールです。
7. メソッドの役割を分けて整理するメリット
プログラムが大きくなると、メソッドを整理することが重要になります。役割ごとにメソッドを分けると、以下のメリットがあります。
メソッドを整理するメリット
- ✔ **コードが見やすくなる**(一つのメソッドが長くなりすぎない)
- ✔ **修正がしやすくなる**(バグの発見や修正が簡単になる)
- ✔ **再利用しやすくなる**(別のプログラムでも簡単に使える)
役割を分けたメソッドの例
例えば、以下のコードでは、メニューを表示するメソッドと合計金額を計算するメソッドを分けています。
public class MethodOrganization {
public static void main(String[] args) {
showMenu();
int total = calculateTotal(500, 3);
System.out.println("合計金額: " + total + "円");
}
// メニューを表示するメソッド
public static void showMenu() {
System.out.println("1. コーヒー - 500円");
System.out.println("2. 紅茶 - 400円");
System.out.println("3. ジュース - 300円");
}
// 合計金額を計算するメソッド
public static int calculateTotal(int price, int quantity) {
return price * quantity;
}
}
1. コーヒー - 500円
2. 紅茶 - 400円
3. ジュース - 300円
合計金額: 1500円
このようにメソッドを分けると、プログラムがわかりやすくなり、修正や拡張が簡単になります。
8. メソッドを使う際の注意点
メソッドを正しく使うために、いくつかの注意点を知っておきましょう。
メソッドを使うときの注意点
- ✔ **メソッド名はわかりやすくする**(何をするメソッドかわかる名前を付ける)
- ✔ **1つのメソッドに多くの処理を詰め込みすぎない**
- ✔ **引数の数が多すぎると使いにくくなるので注意**
- ✔ **再帰呼び出し(自分自身を呼び出すメソッド)は無限ループに注意**
無限ループに注意する例
以下のコードは、**誤った再帰呼び出し** の例です。呼び出しを止める条件がないため、プログラムが永遠に実行されてしまいます。
public class InfiniteLoopExample {
public static void main(String[] args) {
printMessage(); // 無限ループになる
}
public static void printMessage() {
System.out.println("無限ループ中...");
printMessage(); // 自分自身を呼び出す(止まる条件がない)
}
}
正しい再帰呼び出しの例
再帰を使うときは、**終了条件を設定する** ことが重要です。以下は、再帰を正しく使った例です。
public class FactorialExample {
public static void main(String[] args) {
int result = factorial(5);
System.out.println("5 の階乗: " + result);
}
public static int factorial(int n) {
if (n == 1) {
return 1; // 終了条件
}
return n * factorial(n - 1);
}
}
5 の階乗: 120
このように、メソッドを使うときは、**無限ループを避ける** ように注意しましょう。