Okapi Project

戻り値(もどりち)

バージョン
2003 年 12 月 01 日 Ver.1.0
作成者
H.Izumi ( Xware )

目的

呼び出し元に値を返したい!

戻り値ってなに?

メソッドにはメソッドの呼び出し元にメソッドからの特定の情報を返すという仕組みもあります。メソッドから返される情報を戻り値(return value)といいます。引数は複数指定できますが、戻り値は一つしか指定できません。

戻り値の説明

return の記述形式

以下が、return の記述例になります。

戻り値の型 メソッド名(){
    処理;
    return 値;
}
戻り値の型
返したい戻り値の型を指定します。
メソッド名
任意でメソッド名を記述します。
処理
任意で処理を記述します。
return
記述した値を呼び出し元のメソッドに返します。

return 文が指定されているメソッドでは、必ず戻り値の型を指定しなければなりません。この戻り値の型によって返却できる値の型が指定されます。例えば、「int 型」を指定すれば、「int 型」の値が返却出来「String 型」を指定すれば、「String 型」を返却出来ます。

戻り値の使い方

return 文のあるメソッドの作成

以下は、戻り値に「int 型」と「String 型」が存在し、その各々のメソッドを呼び出すメインメソッドがあるプログラムの例です。

public class ReturnTest {
    public static void main(String[] args) {
        new ReturnTest();
    }
    public ReturnTest() {
        System.out.println(this.intM());
        System.out.println(this.stringM());
    }
    //int型を返すメソッドの作成
    public int intM() {
        int i = 10;
        //iの値を返します。
        return i;
    }
    //String型を返すメソッドの作成
    public String stringM() {
        String str = "ストリングの文字列が返りました。";
        //strの値を返します。
        return str;
    }
}

以下が実行結果です。

10
ストリングの文字列が返りました。

戻り値のないメソッド

メソッドには必ず戻り値がなければいけない。何てことはありません。そこで戻り値のないメソッドには、「void」を戻り値の型として記述します。

以下が、「void」を使った戻り値がないプログラムの例です。

public class ReturnTest {
    public static void main(String[] args) {
        new ReturnTest();
    }
    public ReturnTest() {
        this.voidM();
    }
    //戻り値の無いメソッドの作成。
    public void voidM() {
        String str = "戻り値の無いメソッドです。";
        System.out.println(str);
		return ;
    }
}

以下が実行結果です。

戻り値の無いメソッドです。 

ポイント

ヒント

return 文の省略

void など戻り値を持たない(値を返さない)メソッドでは、return文は省略可能 です。以下がそのプログラムの例です。

public class ReturnTest {
    public static void main(String[] args) {
        new ReturnTest();
    }
    public ReturnTest() {
        this.voidM();
    }
    //戻り値の無いメソッドの作成。
    public void voidM() {
        String str = "戻り値の無いメソッドです。";
        System.out.println(str);
    }
}
上記のように記述すると戻り値の無い場合、「return」文を記述しなくても呼び出し元のメソッドに制御を返すことが出来ます。

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.