Javaパラメータメソッドで発生した値の変更を渡す
2390 ワード
1、メソッド内でパラメータを演算し、元の変数の値に影響しない(基本タイプは値を変更せず、参照タイプは参照アドレスを変更しない).
例:
b:2
=======私は分割線=======
java.util.Random@5910e440
java.util.Random@5910e440
整数タイプはメソッド内で値が変化せず,参照タイプのアドレスも変化しなかったことを示す.
2、メソッド内でパラメータの属性を操作し、元の変数の属性値(集合、配列の要素など)を変更する
出力結果:
a:1 b:2========分割線====java.utilです[email protected]@5910 e 440=================[Ljava.lang.String;@6267 c 3 bbbxnull[Ljava.lang.String;@6267 c 3 bba
b
最下辺配列パラメータのテスト結果では,パラメータの参照アドレスが変化せず,パラメータ内部の要素が変化することが分かった.
例:
public class ParamTest {
public static void integerParam(int a,int b){
a += 1;
b += 1;
}
public static void quoteParam(Random x){
x = new Random();
}
public static void main(String[] args) {
int a = 1;
int b = 2;
integerParam(1,2);
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("======= ======");
Random r = new Random();
System.out.println(r);
quoteParam(r);
System.out.println(r);
}
}
出力結果:a:1b:2
=======私は分割線=======
java.util.Random@5910e440
java.util.Random@5910e440
整数タイプはメソッド内で値が変化せず,参照タイプのアドレスも変化しなかったことを示す.
2、メソッド内でパラメータの属性を操作し、元の変数の属性値(集合、配列の要素など)を変更する
public class ParamTest {
public static void integerParam(int a,int b){
a += 1;
b += 1;
}
public static void quoteParam(Random x){
x = new Random();
}
public static void arrayParam(String[] strArray){
strArray[0] = "a";
strArray[1] = "b";
}
public static void main(String[] args) {
int a = 1;
int b = 2;
integerParam(1,2);
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("======= ======");
Random r = new Random();
System.out.println(r);
quoteParam(r);
System.out.println(r);
System.out.println("======== =========");
String[] strArray = new String[2];
strArray[0] = "x";
System.out.println(strArray);
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
arrayParam(strArray);
System.out.println(strArray);
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
}
出力結果:
a:1 b:2========分割線====java.utilです[email protected]@5910 e 440=================[Ljava.lang.String;@6267 c 3 bbbxnull[Ljava.lang.String;@6267 c 3 bba
b
最下辺配列パラメータのテスト結果では,パラメータの参照アドレスが変化せず,パラメータ内部の要素が変化することが分かった.