戻り値 ( 返り値 )
メソッドには、メソッドの呼び出し元にメソッドからの特定の情報を返すという仕組みがあり、その返される特定の情報のことを 「戻り値( 返り値 )」return 値 の部分 といいます。
##戻り値とは?
個人的に一番わかり易い例えだったのが「 ググる 」という行為に例えた場合です。
戻り値の型 = return文に指定する処理結果の型
戻り値の返し方
「戻り値」がある場合は、**「処理の結果を返す必要」**があります。
返し方は以下です。
1. return文 を記述
2. 処理結果を呼び出し元へ返す
その時、 戻り値の型 と return文に指定する処理結果の型 が合ってなければなりません。
void
メソッドの処理結果を呼び出し元へ返す必要がない場合は、
戻り値の型を**「 void 」** と記述して、戻り値なしのメソッドにします。
voidとは
「このメソッドの戻り値は返しません(ありません)」 という意味のキーワードになります。
【voidを記述しない】 戻り値があるメソッド例
こちらは、引数に渡された x と y の値を加算し、加算結果を呼び出し元へ返すメソッドです。
「計算結果をほかの計算に使う」ため、voi
//計算結果は、別の計算に用いる予定があるため、void を記述しない
public int plus(int x, int y) {
return x + y;
}
【void を使用する】 戻り値のないメソッド例
こちらは、 フィールド「message」の内容を画面に表示するメソッド
です。「表示をするだけで、結果を他に使用しない」ので、戻り値をなしにします。
public void print() {
System.out.println(message);
}
使用例
「こちらは、商品の税抜き価格に消費税を足して、税込価格と税抜き価格の両方を表示する」プログラムです。
public class Main {
public static void main(String[] args) {
double price = 980; // 商品の値段
final double taxRate = 1.1; // 消費税率 10%
double inTaxPrice = calcInTax(price, taxRate);
printAllPrice(price, inTaxPrice);
}
public static double calcInTax(double price, double taxRate) {
// TODO 自動生成されたメソッド・スタブ
return price * taxRate;
}
public static void printAllPrice(double price, double inTaxPrice) {
System.out.println("税抜き価格は " + price + "円です。");
System.out.println("税込み価格は " + inTaxPrice + "円です。");
}
}
実行結果
税抜き価格は 980.0円です。
税込み価格は 1078.0円です。
コード解説
- 税込価格計算に必要な「税抜き価格」と「消費税率」を格納。消費税率は final を記述して定数に。
- 1で用意した変数、定数を calcInTaxメソッド で計算してもらい、返り値を inTaxPrice(税込価格)に格納する
- price と intaxPrice をprintAllPriceメソッドに渡して、メッセージを表示する。
メソッドには、戻り値があって引数がないパターンや、
戻り値がなくて引数があるパターンなど、自由自在に作成することが可能です。
プログラミングの用途に合わせて、自分自身でどのパターンのメソッドにするか決めて作成します。