Javaメソッドでの参照タイプのパラメータ伝達の問題
1519 ワード
Javaメソッドのパラメータが基本タイプであれば、値伝達であることはよく知られています.つまり、実パラメータが数値をパラメータに伝達した後、パラメータ対値の操作は実パラメータ変数とは無関係です.例:
change(c , d);
このときcが出力され、その値はまだ1である.
参照タイプがパラメータとして使用されている場合:
public static void change(int a, int b){
a = a + b;
}
int c = 1, d = 2; change(c , d);
このときcが出力され、その値はまだ1である.
参照タイプがパラメータとして使用されている場合:
public static void change(Object a , Object b){
Object temp = a ;
a = b;
b = temp;
}
Object c = new Object();
Object d = new Object();
change(c , d);
, a , c , b d , a、c ,b、d 。 a、b , c、d 、 , , c.xxx = newValue, a、c 。
, ?
change(array[ObjectA] , array[ObjectB]);
, , :
public static void change(Object[] , int indexA , int indexB){//
Object temp = Object[indexA];
Object[indexA] = Object[indexB];
Object[indexB] = temp;
}
2つの タイプの の を するのも じ です.