Javaの戻り値とは?書き方や使い方をわかりやすく解説

Javaでプログラムを書く上で、戻り値の理解は必須です。
この記事では、戻り値の基本から実際のコード例まで、初心者でもすぐに使える形で丁寧に解説します。
戻り値の仕組みをしっかり理解すれば、自分の書くプログラムの幅がぐっと広がりますよ。
戻り値とは何か?基本の解説とサンプルコード
Javaにおける「戻り値(return value)」は、メソッドが処理の結果として呼び出し元に返す値のことを指します。
戻り値を使うことで、メソッドはただ処理を行うだけでなく、その結果を他のコードで再利用できるようになります。
例えば、「足し算をして結果を返す」メソッドを考えてみましょう。
public class Calculator {
// 2つの整数を受け取り、その合計を返すメソッド
public int add(int a, int b) {
int sum = a + b;
return sum; // 計算結果を戻り値として返す
}
public static void main(String[] args) {
Calculator calc = new Calculator();
int result = calc.add(3, 5); // 3と5を足して結果を受け取る
System.out.println("足し算の結果は: " + result); // 結果を表示
}
}
このコードでは、add
メソッドが計算した結果をreturn
キーワードで呼び出し元に返しています。main
メソッドでは、その戻り値を変数result
に受け取り、表示しています。
戻り値の役割まとめ
- メソッドが処理の結果を外に渡す手段
- 戻り値を受け取ることで、計算や判定の結果を他の処理に使える
- 戻り値があるメソッドは値を返すことが期待されているので、
void
ではない
Javaでの戻り値の書き方の詳細
Javaのメソッドで戻り値を使う際は、以下のポイントを押さえましょう。
- 戻り値の型を指定する
- returnキーワードで値を返す
- 戻り値がないメソッドはvoid
戻り値の型を指定する
メソッド宣言の最初に戻り値のデータ型を書く必要があります。例えば、戻り値が整数ならint
、文字列ならString
、戻り値がない場合はvoid
を使います。
public int getNumber() {
return 42;
}
public void printMessage() {
System.out.println("戻り値はありません");
}
return
キーワードで値を返す
メソッド内でreturn 値;
を書くことで、指定した値が呼び出し元に返されます。戻り値の型とreturn
の値の型は必ず一致させる必要があります。
public String getGreeting() {
return "こんにちは";
}
戻り値がないメソッドはvoid
処理だけ行い値を返さないメソッドは戻り値の型をvoid
にします。return
を使わず、呼び出し元は値を受け取りません。
public void showHello() {
System.out.println("Hello!");
}
戻り値の使い方の具体例と応用
- 計算結果を返す
- 判定の結果を返す(真偽値)
- オブジェクトを返す
1. 計算結果を返す
先ほどの足し算メソッドのように、計算結果を返すのは戻り値の最も基本的な使い方です。引数として受け取った値を処理し、その結果を返せます。
2. 判定の結果を返す(真偽値)
戻り値はboolean
型もよく使われます。例えば、数値が偶数かどうかを判定して結果を返すメソッド。
public boolean isEven(int number) {
return number % 2 == 0;
}
呼び出し元では、
if (isEven(4)) {
System.out.println("4は偶数です");
} else {
System.out.println("4は奇数です");
}
のように使います。
3. オブジェクトを返す
メソッドの戻り値はプリミティブ型だけでなく、クラスのインスタンス(オブジェクト)を返すことも可能です。
public class User {
String name;
int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
}
public User createUser() {
return new User("シン", 30);
}
このように戻り値を利用すると、複雑なデータもメソッドから返して扱えます。
戻り値の注意点とよくあるミス
- 戻り値を返さないとコンパイルエラーになる
- voidメソッドでreturnに値を返してはいけない
戻り値を返さないとコンパイルエラーになる
戻り値の型を指定したメソッドでreturn
を書き忘れるとコンパイルエラーになります。必ず全てのパスで値を返すようにしましょう。
void
メソッドでreturn
に値を返してはいけない
戻り値がないメソッドはreturn
だけ(何も返さない)か、return
自体を書かなくてもOKですが、値を返すとエラーになります。
演習問題
- 問題1: 2つの整数の差を計算して返すメソッドを作ってください。
- 問題2: 渡された文字列が「Java」と等しいかどうかを判定するメソッドを作ってください。
- 問題3: 引数に与えられた名前を使って、Userオブジェクトを生成して返すメソッドを作ってください。(Userクラスはnameフィールドのみを持つ)
問題1: 2つの整数の差を計算して返すメソッドを作ってください。
解答例
public int subtract(int a, int b) {
return a - b;
}
問題2: 渡された文字列が「Java」と等しいかどうかを判定するメソッドを作ってください。
解答例
public boolean isJava(String text) {
return "Java".equals(text);
}
問題3: 引数に与えられた名前を使って、User
オブジェクトを生成して返すメソッドを作ってください。(User
クラスはname
フィールドのみを持つ)
解答例
public class User {
String name;
public User(String name) {
this.name = name;
}
}
public User createUser(String name) {
return new User(name);
}
よくある質問(FAQ)
- Q1: 戻り値がvoidのメソッドは戻り値を受け取れますか?
- Q2: メソッドで複数の値を戻り値として返せますか?
- Q3: 戻り値を返さないvoidメソッドでreturnを書く意味は?
- Q4: 戻り値の型と異なる型の値を返すとどうなりますか?
- Q5: 戻り値があるメソッドは必ずreturnを書かなければいけませんか?
Q1: 戻り値がvoid
のメソッドは戻り値を受け取れますか?
A: いいえ。void
のメソッドは戻り値を返さないため、呼び出し元で値を受け取ることはできません。
Q2: メソッドで複数の値を戻り値として返せますか?
A: Javaは1つの戻り値しか返せません。複数の値を返したい場合は、配列やリスト、またはカスタムクラスを使ってまとめて返します。
Q3: 戻り値を返さないvoid
メソッドでreturn
を書く意味は?
A: 処理の途中でメソッドを終了したい場合にreturn;
と書けます。ただし、値は返せません。
Q4: 戻り値の型と異なる型の値を返すとどうなりますか?
A: コンパイルエラーになります。戻り値の型とreturn
で返す値の型は厳密に一致している必要があります。
Q5: 戻り値があるメソッドは必ずreturn
を書かなければいけませんか?
A: はい。戻り値の型がvoid
以外の場合、メソッドのすべての実行パスでreturn
が必要です。書き忘れるとコンパイルエラーになります。
まとめ
記事としては以上です。もし内容の追加や調整が必要なら教えてください。
技術的には正確で、かつ初心者が理解しやすい表現を優先しました。