メソッドの値渡しと参照渡し

値渡し

メソッドの引数に値を渡す際に、基本データ型の値をメソッドに渡した場合、

メソッドはその値のコピーを受け取ります。これを「値渡し」と呼びます。

この値渡しでは値のコピーを受け取るため、メソッド内でその引数の値を変更しても

呼び出し元にある変数は変更されません。

[例]

int a = 10; ← 呼び出し元aの値は変わらない。

obj.keisan(a);

void keisan(int a){ a= a+ 10; }

例えばint型のaという変数をメソッドの引数に渡して、メソッド内でaの値を変更したとします。

keisanメソッドではaに10を加算してaに代入しているためaの値は11になります。

しかしメソッドの外にある変数aは10のまま変わりません。

参照渡し

これに対し、メソッドの引数にString型や配列などの参照型の値を渡した場合、

メソッドはその値への参照を受け取ります。

これを「参照渡し」といいます。

この参照渡しでは参照そのものを引数に渡してメソッド内の引数も呼び出し元と同じものを参照するため、

メソッド内で引数の値を変更すると呼び出し元の変数も同じものに変更されます。

[例]

Int[ ] b = {10,20,30}; ← 呼び出し元bの値はメソッド内のものと同じものに変更される。

obj.keisan(b);

void keisan(int[ ] b){ b[0] = b[0]+ 10; }

例えば参照型である配列bをメソッドの引数に渡してメソッド内で配列bの値、ここでは

配列bの0番目の要素に10を加算した場合、0番目の要素は20になりますが、

この場合メソッドの外にある配列bの0番目の要素も20になります。





エクセル・アクセスを動画で楽々マスターできる楽ぱそDVD!