Javaのreturn文で複数の値を得る方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaのreturn文で複数の値を得る方法について解説しています。ここではクラス型を利用し2つの値を取得する方法について例を使って説明します。サンプルコードで処理の流れを確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaのreturn文で複数の値を得る方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Java講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
return文で複数の値を得る方法について詳しく説明していくね!
お願いします!
複数の値を得る方法とは?
通常、return文を使用した戻り値は、下記サンプルコードにあるcircleAreaのように1つの戻り値しか返せません。
public class Main { public static void main(String[] args) { double circleArea = area(5); System.out.println("円の面積は" + circleArea + "です。"); } private static double area(int num1) { double circleArea = num1 * num1 * 3.14; return circleArea; } }
実行結果
円の面積は78.5です。
複数の値をreturn文で戻したい場合は、1つの配列変数かクラス型変数に値をまとめて返す必要があります。
【複数の戻り値が同じデータ型の場合】
1.配列変数を利用して値を戻す
配列変数の中には、データ型が同等の複数の値を代入できます。
【複数の戻り値が異なるデータ型の場合】
1.Objact型の配列を利用して値を戻す
クラス型(参照型)であればObject型配列変数の中に複数のクラス型を代入できます。
2.クラス型を利用して値を戻す
オブジェクトの返却後、そのオブジェクトのフィールドを呼び出すことで値を取り出せます。
1つのクラスにして返してみる
今回はクラス型を利用して値を戻す方法で考えてみます。
複数の値を返すには、複数の変数(フィールド)を持った1つのクラスを作成します。
変数circle(円周)も変数circleArea(円の面積)も返したいときには、下記サンプルのようにcircleとcircleAreaを持つ1つのクラスにすれば返すことができます。
public class Circle { double circle; // 円周 double circleArea; // 円の面積 }
実際に書いてみよう
public class Circle { double circle; // 円周 double circleArea; // 円の面積 }
public class Sub { public Circle calcCircle(int r) { Circle cir = new Circle(); cir.circle = 2 * r * 3.14; cir.circleArea = r * r * 3.14; return cir; } }
public class Main { public static void main(String[] args) { Sub sub = new Sub(); Circle cir = sub.calcCircle(5); System.out.println(cir.circle); System.out.println(cir.circleArea); } }
実行結果
31.400000000000002 78.5
今回はCircleクラスが複数の値を戻すクラスとしています。
SubクラスのcalcCircle()メソッドで円周(circle)と円の面積(circleArea)を計算し、計算結果をCircleクラスのフィードに設定しています。calcCircle()メソッドからの戻り値は2つの値が設定されたCircleオブジェクトになります。
main()メソッドでは、戻り値として受け取ったCircleオブジェクトからそれぞれのフィールドの値を取り出すことで、複数の値を取得できています。
監修してくれたメンター
松井紀明
メーカー系で17年エンジニアとして勤務後、現在はフリーのエンジニアとしてリモートワークで働いています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。