ニート脱出のためプログラミングを始めた30代後半おじさんの冒険録。

ぱらぽれ

プログラミング

参照渡しと値渡しってなあに?【Java初心者】

こんにちはJava勉強中のぱらです。

今回はJavaの参照渡しと値渡しについて調べたことをまとめます。

値渡しと参照渡しとは

値渡しと参照渡しとはメソッドの引数の渡し方のことです。

 

・値渡し

値渡しは値だけを渡し、変数そのものは渡さない。

メソッドの引数を変数にすると値渡しになる。

 

・参照渡し

参照渡しはメモリ番地を渡す。(厳密には参照の値渡しというそうです。)

メソッドの引数を配列やインスタンスにすると参照渡しになる。

値渡しだと何が起こるのか

値渡しは、値だけしか渡さないので変数の中身の値は変わりません

 

例:変数aの値が変わらない。

出力は5になります。

plusメソッドの引数 i には変数aが入っているのではなく、iには5という数字が入ります。

なのでi++してもaの出力が6になりません。

ぱら
1を足したのに5のままなんだね。
ぽれ
そーなの。

参照渡しだと何が起こるのか

参照渡しだと要素の中身の値も変わります。

 

例:配列arrayの値が変わる。

出力は234になります。

配列内の数値が変わっているため出力結果も変わるんですね。

配列の場合は値を渡しているのではなく、配列のメモリ番地を渡しています。

 

・参照渡しのイメージ

配列のメモリ番地を渡す→メソッドで配列が呼び出される→メソッドが配列の中身を書き換える

ぱら
こっちは中身も変わるんだね。
ぽれ
ややこしいわね。

-プログラミング

Copyright© ぱらぽれ , 2020 All Rights Reserved.