Java入門 #11 - メソッドの定義と呼び出し

入門 | 10分 で読める | 2026.05.02

公式ドキュメント

今回やること

メソッドは、処理をまとめて名前を付けたものです。チケットの合計金額を求める処理を使って、引数・戻り値・void・オーバーロードを順に確認します。

前提: Java入門 #10 - 配列までの変数、条件分岐、繰り返しを理解していること。

単価と枚数を渡す → calculateTotalが計算する → 合計金額が戻る
部分役割
メソッド名処理の目的を表す
引数呼び出し元から受け取る値
戻り値計算結果として呼び出し元へ返す値
戻り値の型どの型を返すかを宣言する

この回のメソッドにはstaticを付けます。mainもstaticメソッドなので、まだオブジェクトを作らずに直接呼び出せる形にするためです。クラスとオブジェクトを学んだ後は、各オブジェクトの状態を使うインスタンスメソッドも作ります。

処理へ具体的な名前を付けると、呼び出し側を読んだだけでも目的を追いやすくなります。

1. 引数を受け取る

次のメソッドは、unitPricecountという2つのintを受け取ります。

static int calculateTotal(int unitPrice, int count) {
    return unitPrice * count;
}

メソッド定義のunitPricecount仮引数、呼び出し時の12003実引数と呼びます。

int total = calculateTotal(1200, 3);

引数は定義した順番と型に合わせます。この呼び出しではunitPriceが1200、countが3です。

2. returnで結果を返す

戻り値の型がintなので、returnintの値を返します。呼び出し元は結果を変数に保存でき、その後の計算や表示に使えます。

int total = calculateTotal(1200, 3);
System.out.println(total);

表示するだけでなく値を返す形にすると、「計算」と「画面へどう見せるか」を分けられます。

3. voidで表示だけを行う

結果を返さないメソッドは、戻り値の型をvoidにします。

static void showTotal(int total) {
    System.out.println("合計: " + total + "円");
}

showTotalは表示を行いますが、計算結果を返しません。int value = showTotal(3600);のようには使えません。

4. 引数違いのメソッドを用意する

同じ名前で引数の個数や型が違うメソッドを定義することを、オーバーロードと呼びます。割引額を受け取る形だけを追加します。

static int calculateTotal(int unitPrice, int count, int discount) {
    return unitPrice * count - discount;
}

引数2個なら通常計算、3個なら割引計算が選ばれます。戻り値の型だけを変えてもオーバーロードにはなりません。

完成コードを動かす

MethodDemo.javaとして保存します。

public class MethodDemo {
    static int calculateTotal(int unitPrice, int count) {
        return unitPrice * count;
    }

    static int calculateTotal(int unitPrice, int count, int discount) {
        return unitPrice * count - discount;
    }

    static void showTotal(String label, int total) {
        System.out.println(label + ": " + total + "円");
    }

    public static void main(String[] args) {
        int regular = calculateTotal(1200, 3);
        int discounted = calculateTotal(1200, 3, 500);

        showTotal("通常", regular);
        showTotal("割引後", discounted);
    }
}
javac MethodDemo.java
java MethodDemo

呼び出しの流れは次のとおりです。

呼び出し選ばれる定義結果
calculateTotal(1200, 3)引数2個3600
calculateTotal(1200, 3, 500)引数3個3100

成功確認

通常: 3600円
割引後: 3100円

同じ計算式をmainへ2回書かず、メソッドの戻り値を表示用メソッドへ渡せていれば成功です。

mainには「どの順に処理するか」、各メソッドには「その処理をどう行うか」が分かれていることも確認します。

よくあるつまずき

returnの型が宣言と違う

static intならintを返します。値を返さない処理はvoidにします。

引数の順番を入れ替える

同じint同士だと、順番を間違えてもコンパイルできる場合があります。unitPricecountのように役割が分かる名前を使います。

似たoverloadを増やしすぎる

引数の意味が判断しにくい定義を大量に作ると、呼び分けが難しくなります。今回は割引の有無という1つの違いだけにします。

練習

長方形の面積を返すcalculateArea(int width, int height)と、結果を表示するshowArea(int area)を作ってください。別題材として、引数と戻り値の役割を説明できれば完了です。

次のステップ

Java入門 #12 - クラスとオブジェクトで、データとメソッドを一つの型へまとめます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR