Javaのローカル変数とは?メソッドの中だけで使える変数の考え方

本記事は、Schooの「Java入門 初級【2026年版】」第6回「メソッド」を学ぶ前後に、Javaのローカル変数の考え方を整理したい方向けのステップアップ学習記事です。
ただし、Schooを受講していない方でも、メソッド、引数、戻り値の基本を学んだあとに読み進められる内容にしています。
Schoo コースページ:Java入門 初級【2026年版】
ローカル変数とは、メソッドの中で宣言して、そのメソッドの処理中だけ使う変数です。計算の途中結果を入れたり、条件分岐で使う値を一時的に持たせたりするときに使います。
ローカル変数はメソッドの中で作る変数
次の例では、calculateDiscount メソッドの中で discount というローカル変数を宣言しています。
public static int calculateDiscount(int total) {
int discount = 0;
if (total >= 5000) {
discount = 500;
}
return discount;
}
discount は、割引額を計算するための作業用の変数です。メソッドの中で値を入れ、最後に return discount; で結果として返しています。
discount は calculateDiscount メソッドの中で作られた変数なので、そのメソッドの中だけで使えます。discount を直接使おうとすると、変数が見つからないためエラーになります。ローカル変数は外のメソッドから使えない
ローカル変数は、宣言したメソッドの中だけで使えます。たとえば、calculateDiscount の中で宣言した discount は、別のメソッドから直接使えません。
public static int calculateDiscount(int total) {
int discount = 0;
return discount;
}
public static void printResult() {
System.out.println(discount); // エラー
}
printResult メソッドの中には discount が宣言されていないため、Javaはその変数を見つけられません。この「変数を使える範囲」をスコープと呼びます。
引数もメソッドの中で使える変数
メソッドの引数も、そのメソッドの中で使える変数です。次の例では、total は呼び出し元から渡された値を受け取る変数で、discount はメソッドの中で作った変数です。
public static int calculateDiscount(int total) {
int discount = 0;
if (total >= 5000) {
discount = 500;
}
return discount;
}
total と discount は役割が違います。total は外から渡された注文金額、discount はメソッド内で計算する割引額です。どちらも calculateDiscount の中で使う変数です。
discount は同じ名前でも、メソッドを呼び出すたびに新しく用意されます。前回の値が次の呼び出しに残るわけではありません。
フィールドとの違い
フィールドは、オブジェクトが持つ値です。一方、ローカル変数はメソッドの処理中だけ使う値です。
public class Student {
String name; // フィールド
public void printName() {
String message = "名前:" + name; // ローカル変数
System.out.println(message);
}
}
name は Student オブジェクトが持つフィールドです。message は printName メソッドの中だけで使うローカル変数です。
確認問題
calculateDiscountメソッドの中で宣言したdiscountは、別のメソッドから直接使えますか。- 引数の
totalと、メソッド内で宣言したdiscountの役割の違いを説明してください。 Studentクラスのnameと、printNameメソッド内のmessageは、それぞれフィールドとローカル変数のどちらですか。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
あわせて読みたい関連記事
まとめ
ローカル変数は、メソッドの中で一時的に使う変数です。宣言したメソッドやブロックの中だけで使え、外のメソッドからは直接使えません。引数、ローカル変数、フィールドの違いを意識すると、メソッドの中で値がどこから来て、どこまで使えるのかを読み取りやすくなります。