- 締切済み
引数と戻り値がわかりません
Javaを勉強中なのですが、引数と戻り値がよく分かりません。 自分で買ったテキストをベースに進めているのですが、ここで詰まってしまいます。 具体的に表現するのが難しいのですが、値がどこに行ってどういう流れになっているのかが 自分で追えず混乱してます。 public static method X (String name){ return name; ↑こういう記述です。 「値をとってくる」、「呼び出し元へ値を返す」という事が分かってないのだと思います。 まだまだ知識が覚束ないのでわかりにくいかもしれませんが、 ご教授願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mpro-gram
- ベストアンサー率74% (170/228)
メソッド一個だけ見ていても、呼び元、戻り先のことは理解しにくいでしょう。 メソッド側で「値をとってくる」、「呼び出し元へ値を返す」のではなく、 呼び元で、「値を渡す」「結果を貰う」 のです。 まず、先に一連の流れが有って、そのうちでよく繰り返す作業とか込み入った部分を一つのサブルーチン(部分作業)として関数(javaではメソッド)に取り出して、メインの流れを見やすくするのが、最初の理解かと思う。 で、一番最初のエントリーポイントである以下のmainメソッドに全体の流れが記述される public static void main(String[] args) { // 初期値 int x = 5; // 作業 int y = x * x; // 出力 System.out.println("y= f("+x + ") ="+y); } // x * x を メソッドfxとして定義すると public static int fx( int a ){ return a*a; } // 先ほどのmain メソッドの中身はこうなる public static void main(String[] args) { int x = 5; int y = fx(x); /* メソッドfx に x の値を渡して、 メソッドで作業した結果をy 変数に貰う */ System.out.println("y= f("+x + ") ="+y); } 上記は、fx メソッドの中身が単純すぎてありがたみがないが、もっと複雑な演算をさせたり、引数も返値もインスタンス型にもできるので、さらに複雑な処理がmainメソッドからは見えないところで行われて、最終結果だけ、main メソッドで受け取ることで、mainメソッドの中をすっきりさせられる。
- Kaneyan-R
- ベストアンサー率42% (1340/3127)
掲示されている例で言えば、()内にある「name」が引数を格納する文字列変数、returnで返す「name」が戻り値の内容(文字列)になります。 つまり、厳密に言えばこの中に「引数」と「戻り値」はありません。 引数は、関数やサブルーチンに「渡す値」のこと。 戻り値は、関数やサブルーチンの処理によって「返されてきた値」のことです。 JAVAに明るくないのでJavaScriptで説明。 function test(S){ return S+1; } var A = test(4); //←関数「test()」に引数「4」を渡した結果(戻り値)をAに代入。 alert(A); //←Aの値を表示。 この例だと、関数「test()」で受け取った値に+1してるので、引数は4、戻り値は5になります。 よってAの値は「5」です。