🐥
Javaの引数に配列を渡す書き方
配列をメソッドに渡す方法
public int sum(int[] x) {
x[0] = x[0] + 1;
x[1] = x[1] + 1;
x[2] = x[2] + 1;
return x[0] + x[1] + x[2];
}
public static void main(String[] args) {
Main ex = new Main();
int[] nums = new int[3];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
System.out.println("nums= " + nums[0] + " " + nums[1] + " " + nums[2]);
int allNum = ex.sum(nums);
System.out.println("nums= " + nums[0] + " " + nums[1] + " " + nums[2]);
System.out.println("allNum=" + allNum);
}
}
実行結果
nums= 1 2 3
nums= 2 3 4
allNum=9
このコードでは、mainメソッドがMainクラスのインスタンスを割り当て、int型でサイズが3の配列を宣言し、各配列要素に値を入れてます。
次に、配列がメソッドに渡されます
これはメモリ(参照先)のアドレスであり、そのアドレスがメソッドに渡されて配列のローカル変数xに割り当てられています。
int型の配列をパラメータに指定しないと受け取れませんので注意してください。
次に、メソッドではローカル変数x要素が変更されます。ただし、ローカル変数xは配列のアドレス(参照先)があるため、実際には、数値とまったく同じアドレス(参照先)に変更しています。
2人が共有する郵便受けのような場所をイメージください。どちらかの人が手紙を取り出したりしたら、その郵便受けは共有しているので、もう一人の人にも影響してしまいます。
したがって、メインメソッドに戻って配列の内容を出力すると、メソッドで変更された値が入っています。
Discussion