MENU

【Java】レッスン3-01:初心者向け|メソッドの定義と使い方をマスターしよう

tggaa478@yahoo.co.jp

一つ前の章ではJavaの制御構造について学習しました。

今回からは メソッド について見ていきましょう。

Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:メソッド編

 ・Lesson3-1:メソッドの基本を確認しよう ◁今回はココ
 ・Lesson3-2:メソッドの戻り値を理解しよう
 ・Lesson3-3:真偽値を返すメソッドを理解しよう
 ・Lesson3-4:メソッドのオーバーロードを理解しよう
 ・Lesson3-5:ジェネリクスを理解しよう
 ・確認問題3-☆1:石取りゲームを作ろう
 ・確認問題3-☆2:丁半賭博ゲームを作ろう
Lesson4:コレクション編
Lesson5:クラス

<<前のページ

学習記事一覧

次のページ>>

Javaメソッドの基本|定義と使い方を初心者向けに解説

Javaプログラミングを学ぶ上で、メソッドの理解は非常に重要です。

メソッドはプログラムの中で特定の処理をまとめて、簡単に再利用できるようにするための仕組みです。

この記事ではメソッドの基本について解説します。

メソッドの役割とは?処理のまとまりを作る意味

メソッドは、一連の処理をひとつにまとめたものです。

例えば「ある計算を行う処理」や「特定のメッセージを表示する処理」を1つのメソッドにまとめておけば、何度も同じ処理を繰り返し書かずに済みます。

プログラムを簡潔で理解しやすくするために、メソッドはとても役立ちます。

Javaでのメソッド定義|構文と書き方

メソッドは次のような形で定義します。

public static void メソッド名() {
    // メソッドの中で実行される処理
}

このようにメソッドには「名前」があり、その中に処理が記述されています。

Javaメソッドの記述例|sayHelloメソッドを作ろう

例えば「Hello, World!」と表示するメソッドを作成する場合、次のように書くことができます。

public static void sayHello() {
    System.out.println("Hello, World!");
}
  • public static void は、メソッドを定義するためのお決まりのキーワードです。今は深く考えず、「こう書くものだ」と覚えておきましょう。
  • sayHello はメソッドの名前です。自由に名前を付けられますが、何をするメソッドか分かりやすい名前にするのが良い習慣です。
  • {} の中には、実際に行う処理を書きます。この場合、System.out.println("Hello, World!"); という、メッセージを表示する処理が書かれています。

メソッドの呼び出し方|mainからの実行例

メソッドは定義しただけでは実行されません。

メソッドを実行するには呼び出す必要があります。次のようにメソッド名を書いて呼び出します。

public class Main {
    public static void main(String[] args) { //メインメソッド
        sayHello(); // sayHelloメソッドを呼び出す
    }

    public static void sayHello() { //sayHelloメソッドの定義
        System.out.println("Hello, World!");
    }
}

この例ではmainメソッドの中から、外にあるsayHello()メソッドを呼び出しています。

sayHello()と書くことで先ほど定義したメソッドが実行され、”Hello, World!” が表示されます。

引数付きメソッドの使い方|greetで名前を表示

メソッドには引数を渡すことができます。引数とはメソッドに渡される追加の情報です。

例えば特定の名前を表示するメソッドを作る場合、引数を使うことでメソッドをより汎用的にできます。

public static void greet(String name) { //greetメソッドの定義。()の中が引数。
    System.out.println("Hello, " + name + "!");
}

このgreetメソッドは名前を引数として受け取り、その名前を使って挨拶を表示します。

次のように呼び出します。

public class Main {
    public static void main(String[] args) { //メインメソッド
        greet("Alice"); //greetメソッドに引数Aliceを渡して実行
        greet("Bob"); //greetメソッドに引数Bobを渡して実行
    }

    public static void greet(String name) { //greetメソッドの定義
        System.out.println("Hello, " + name + "!");
    }
}

このプログラムを実行すると次のように表示されます。

Hello, Alice!
Hello, Bob!

コードの再利用性と可読性を高めるメリット

メソッドを使うことで以下のようなメリットがあります。

  1. コードの再利用
    一度定義したメソッドは何度でも呼び出せるので、同じ処理を繰り返し書く必要がなくなります。
  2. コードの見通しが良くなる
    複雑な処理をメソッドに分割することで、コード全体が読みやすくなります。
  3. メンテナンスがしやすい
    メソッドにまとめておけば、後から修正や改善が必要になったときに、修正箇所を簡単に特定しやすくなります。

Javaメソッドの基本まとめと次の学習ステップ

この図はこれから学習していく第3章メソッド編の内容をまとめたものです。本記事では一番上のメソッド1について学習しました。

メソッドはプログラムを整理し、再利用可能にするための重要な仕組みです。

メソッドの基本を理解すればより複雑なプログラムもスムーズに書けるようになります。

今回紹介した内容はメソッドの最も基本的な部分なので、まずは自分でメソッドを定義して、呼び出してみましょう。

練習問題|isEvenメソッドで偶数・奇数を判定するプログラム

ユーザー数値を入力し、その数値が偶数か奇数かを判定するメソッド isEven を作成してください。

このメソッドは数値が偶数ならば「Even」、奇数ならば「Odd」を出力します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • ユーザーから整数を入力するために Scanner クラスを使用すること。
  • 入力された整数が偶数か奇数かを判定するメソッド isEven を定義すること。
  • 偶数の場合は “Even”、奇数の場合は “Odd” と表示すること。
  • メソッドの戻り値は使用しないこと。

ただし、以下のような実行結果となること。

Enter a number: 5
Odd

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1:Scannerクラスをインポート
2:Mainクラスの定義
  □ mainメソッドの定義
  □ □ Scannerオブジェクトscannerの初期化
  □ □ 「Enter a number: 」と出力
  □ □ ユーザーの入力を整数として読み取り、変数numberに代入
  □ □ isEvenメソッドを呼び出す
  □ isEvenメソッドの定義
  □ □ if文でnumberが偶数か奇数かを判定
  □ □ □ 真の場合、「Even」と出力
  □ □ else
  □ □ □ 偽の場合、「Odd」と出力

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  // Scannerオブジェクトを作成
        System.out.print("Enter a number: ");  // ユーザーに数値入力を促すメッセージを表示
        /*【穴埋め問題1】
        ここにscannerを使用して入力を読み取り、変数numberに整数として格納するコードを書いてください。
        */
        isEven(number);  // isEvenメソッドを呼び出す
    }

    /*【穴埋め問題2】
    ここにisEvenメソッドの定義とその中でnumberが偶数か奇数かを判定し、それぞれ適切なメッセージを出力するコードを書いてください。
    */
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

練習問題1の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  // Scannerオブジェクトを作成
        System.out.print("Enter a number: ");  // ユーザーに数値入力を促すメッセージを表示
        int number = scanner.nextInt();  // ユーザーが入力した数値を読み取る
        isEven(number);  // isEvenメソッドを呼び出す
    }

    // 偶数か奇数かを判定するメソッド
    public static void isEven(int number) {
        // numberが偶数かどうかをチェック
        if (number % 2 == 0) {
            System.out.println("Even");  // 偶数の場合の出力
        } else {
            System.out.println("Odd");  // 奇数の場合の出力
        }
    }
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

Scannerクラスのインポート

import java.util.Scanner;

この行では、Scannerクラスをインポートしています。Scannerは、ユーザーからの入力を読み取るために使います。

java.utilパッケージに含まれており、インポートすることで、プログラム内でこのクラスを使用できるようになります。

mainメソッドの定義

public static void main(String[] args) {

mainメソッドはJavaプログラムのエントリーポイントです。すべてのJavaプログラムは、このmainメソッドから実行が開始されます。

publicはこのメソッドが他のクラスからもアクセス可能であることを示し、staticはインスタンス化せずに呼び出せることを意味します。

voidはこのメソッドが値を返さないことを示しています。(詳細は次の記事を参照)

Scannerオブジェクトの作成と入力促し

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a number: ");

Scanner scanner = new Scanner(System.in); では、scannerという名前のScannerオブジェクトを作成しています。System.inは、キーボードからの入力を受け取るための標準入力ストリームを示します。

次にSystem.out.print("Enter a number: "); で、ユーザーに数値を入力するよう促すメッセージを表示しています。

ユーザー入力の取得

int number = scanner.nextInt();

この行ではユーザーが入力した数値を取得し、numberという整数型変数に格納しています。

nextInt()は入力されたデータを整数型として読み取るメソッドです。

isEvenメソッドの呼び出し

isEven(number);

isEvenという名前のメソッドを呼び出しています。このメソッドには先ほど取得したnumberが引数として渡されます。

メソッドの呼び出しによってプログラムの流れはisEvenメソッドに移動します。

isEvenメソッドの定義

public static void isEven(int number) {
    if (number % 2 == 0) {
        System.out.println("Even");
    } else {
        System.out.println("Odd");
    }
}

この部分はisEvenメソッドの定義です。

このメソッドはnumberが偶数か奇数かを判定します。メソッドの定義には以下の要素があります:

  • public: 他のクラスからアクセスできるメソッドであることを示します。
  • static: このメソッドがクラスそのものに属し、インスタンス化しなくても呼び出せることを意味します。
  • void: このメソッドが値を返さないことを示します。
  • int number: メソッドが呼び出された際に、整数型の引数を1つ受け取ります。

メソッド内のif文では、numberが偶数かどうかを%演算子を使って確認しています。

%は剰余演算子でnumberを2で割ったときの余りが0なら偶数、そうでなければ奇数であることを示しています。

まとめ

このコードはユーザーに数値を入力させ、その数値が偶数か奇数かを判定するシンプルなプログラムです。

重要な部分はisEvenメソッドの定義と呼び出しです。

このメソッドは引数として受け取った数値を元に、条件分岐を使って偶数か奇数かを出力します。

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいJava学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました