参照渡し(引数にアドレスを渡す)
基本型変数などではなく配列など引数としてアドレスを渡していることを参照渡し、参照渡しを行うと呼び出し先で加えた変更が呼び出し元にも影響を与える
『配列をメソッド呼び出しで渡すと』
.呼び出し元の配列のアドレスが、呼び出し先の引数にコピーされる
.呼び出し先で配列の実体を書き換えると、呼び出し元にも影響を与える
値渡し(値そのものが渡されること)
『基本型の変数をメソッド呼び出しで渡すと』
.呼び出し元の変数の内容が、呼び出し先の引数にコピーされる
.呼び出し先で引数の内容を書き換えても呼び出し元の変数は変化しない
参照渡しと値渡しの例
MethodArray.java
public static void main(String[] args) {
int num = 8;
int array[] = {10, 4};
System.out.println(num);
System.out.println(array[0]);
test(num, array);
System.out.println(num);
System.out.println(array[0]);
}
private static void test(int num, int array[]){
num = 5;//ここで代入しても変わらない値渡し
array[0] = 12;//アドレスを渡すので変わる
実行
8
10
8
12