本文へスキップ
T2R tech2rich.com
プログラミング 📚 Java入門 第6回 #Java #入門 #プログラミング初心者 #メソッド #関数

【Java入門 第6回】メソッド(関数)を理解する|引数・戻り値・void の使い分け

Javaのメソッド(関数)を完全初心者向けに徹底解説。なぜメソッドが必要なのか、引数と戻り値の書き方、void・return の意味、オーバーロードまで丁寧に説明します。

📅 公開: 2026.05.19 🔄 更新: 2026.05.19 ⏱ 読了 約7分 ✍ 管理人

第5回では、配列を使って複数のデータをまとめて扱う方法を学びました。 今回は、「処理をまとめて、何度も再利用できる仕組み」 ── メソッド(Method) を学びます。

メソッドは、他のプログラミング言語では 「関数(Function)」 と呼ばれることもある、極めて重要な機能です。 これを覚えると、コードの整理力が一気に上がり、「同じことを何度も書く」苦痛から解放されます。

先輩

この記事のゴール

「メソッドとは何か」「なぜ便利なのか」「引数と戻り値の正しい書き方」を、自分で書ける状態になることです。

そもそもメソッドとは?(現実世界のたとえで理解する)

メソッドとは、「ひとまとまりの処理に名前を付けて、後で呼び出せるようにしたもの」 です。

💡 イメージ: メソッドは 「自動販売機」 のようなもの。 ボタンを押す(=メソッドを呼ぶ)と、裏で複雑な処理が行われ、結果(=戻り値)が返ってくる。中身がどう動いているか、利用者は知らなくても使えるのが大きな利点です。

たとえば、「2 つの数値を足し算する」 という処理を 10 か所で使うとします。

メソッドを使わない場合:

int a = 5;
int b = 3;
int result1 = a + b;  // 1回目

int x = 10;
int y = 20;
int result2 = x + y;  // 2回目

// ... これを 10 回繰り返す...

メソッドを使う場合:

int result1 = add(5, 3);     // 1回目
int result2 = add(10, 20);   // 2回目
// ...

add という「足し算をするメソッド」を 1 つ作っておけば、何度でも呼び出して使えるのです。

メソッドの基本形

メソッドの基本構文はこの形です。

戻り値の型 メソッド名(引数の型 引数名, ...) {
    // 処理
    return 戻り値;
}

ちょっと用語が多いので、1 つずつ解説していきましょう。

はじめてのメソッドを書いてみる

実際に、足し算メソッド add を作ってみましょう。

public class MethodDemo {
    // ──────────────────────────────────────────────────────────────
    // add メソッド(自作の足し算メソッド)
    //   引数: int a, int b   ← 呼び出し時に渡される 2 つの整数
    //   戻り値: int          ← 結果として整数を返す
    // ──────────────────────────────────────────────────────────────
    public static int add(int a, int b) {
        int sum = a + b;      // a と b を足して sum に代入
        return sum;            // sum を呼び出し元に返す
    }

    public static void main(String[] args) {
        // add(5, 3) を呼ぶと、メソッド内で a=5, b=3 が処理され 8 が返る
        int result = add(5, 3);                    // result には 8 が入る
        System.out.println("結果: " + result);      // → 結果: 8
    }
}

1 行ずつ解説

public static int add(int a, int b) {
int sum = a + b;
return sum;
int result = add(5, 3);

戻り値が「無い」メソッド: void

「処理だけして、結果を返さないメソッド」もよくあります。 そのときは、戻り値の型を void(ボイド・空っぽの意味) と書きます。

// 戻り値の型を void(空っぽ)にすると、値を返さないメソッドになる
public static void greet(String name) {
    System.out.println("こんにちは、" + name + "さん!");
    // void なので return は省略可能(書くなら「return;」で値なし)
}

public static void main(String[] args) {
    greet("佐藤");  // メソッド呼び出し(戻り値を受け取らない) → こんにちは、佐藤さん!
    greet("田中");  // → こんにちは、田中さん!
}

💡 void メソッドの中で return;(値なしの return)を書くと、その時点でメソッドを抜けられます。条件分岐と組み合わせると便利です。

メソッドのオーバーロード(同じ名前で複数定義できる)

Java では、同じ名前のメソッドでも、引数の型や数が違えば複数定義できます。これを オーバーロード(Overloading) と呼びます。

// 整数の足し算
public static int add(int a, int b) {
    return a + b;
}

// 小数の足し算(同じ名前 add でも OK!)
public static double add(double a, double b) {
    return a + b;
}

// 3 つの整数の足し算
public static int add(int a, int b, int c) {
    return a + b + c;
}

public static void main(String[] args) {
    System.out.println(add(3, 5));         // 8(int 版が呼ばれる)
    System.out.println(add(3.5, 5.5));     // 9.0(double 版が呼ばれる)
    System.out.println(add(1, 2, 3));      // 6(3 引数版が呼ばれる)
}

呼び出し時に 引数の型・数で Java が自動的にどのメソッドを使うか判別してくれます。

ハマりがちなエラー TOP3

エラー① return 文を書き忘れる

public static int add(int a, int b) {
    int sum = a + b;
    // ❌ return 文がない!
}

症状: error: missing return statement 対処: 戻り値の型を指定したメソッドでは、必ず return 文を書く(void 以外)。

エラー② 引数の型を書き忘れる

public static int add(a, b) {  // ❌ int がない
    return a + b;
}

対処: 引数は 型 変数名 の順で書く。型は省略不可。

エラー③ メソッドの外で変数を使おうとする

public static void calc() {
    int x = 10;  // メソッド内の変数
}

public static void main(String[] args) {
    System.out.println(x);  // ❌ x はメソッドの外では見えない!
}

原因: メソッド内で宣言した変数(ローカル変数)は、そのメソッドの中でしか有効です。これを スコープ と呼びます。 対処: メソッド間で値を共有したいなら、戻り値で受け渡すか、クラスのフィールドにする(第 7 回で解説)。

main メソッドの正体

ここまで何度も登場した main メソッド。実はこれもただのメソッドです。

public static void main(String[] args) {
    // ...
}

つまり Java は main メソッドからプログラムを始めなさい」 というルールで動いています。

編集部より

編集部のアドバイス

「ちょっと長くなってきたな」と思ったら、処理をメソッドに分けるサイン1 メソッド = 1 つの仕事を意識すると、コードが格段に読みやすくなります。

練習問題

以下のメソッドを作ってみましょう。

整数 n を受け取り、1〜n の合計を返すメソッド sumUpTo(int n) を作成し、sumUpTo(10) を実行して結果を表示してください。

解答例

public class SumDemo {
    // 1 〜 n の合計を計算して返すメソッド
    //   引数:   int n  (合計の上限)
    //   戻り値: int    (計算結果)
    public static int sumUpTo(int n) {
        int total = 0;                        // 合計を 0 で初期化
        for (int i = 1; i <= n; i++) {        // i を 1 から n まで動かす
            total += i;                        // total に i を加算
        }
        return total;                          // 計算結果を呼び出し元に返す
    }

    public static void main(String[] args) {
        int result = sumUpTo(10);                              // sumUpTo(10) を呼び出し
        System.out.println("1〜10 の合計: " + result);          // → 55
    }
}

まとめ

第 6 回では、以下を学びました。

次回は、いよいよ 「クラスとオブジェクト」 という Java の核となる概念を学びます。 ここから、「オブジェクト指向プログラミング」 の世界が始まります!お楽しみに。

関連の技術記事