之前自学过一点,又把后面两天要学的内容大概过了一下,基本上没啥问题。自学的时候没怎么具体看过形参和实参这一部分。今天看了视频有如下总结: A : 如果方法的参数是基本数据类型,那么形式参数不影响实际参数。
例:
public class ArgsDemo {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a:"+a+",b:"+b);//a:10,b:20
change(a,b);
System.out.println("a:"+a+",b:"+b);//??? a:10,b:20
}
public static void change(int a,int b) {//a=10,b=20
System.out.println("a:"+a+",b:"+b);//a:10,b:20
a = b;//a=20
b = a + b;//b=40
System.out.println("a:"+a+",b:"+b);//a:20,b:40
}
}
B : 如果方法的参数是引用数据类型,那么形式参数直接影响实际参数。
例:
public class ArgsDemo2 {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]); // 1 2 3 4 5
}
change(arr);
for (int x = 0; x < arr.length; x++) {
System.out.println(arr[x]); // 1 4 3 8 5
}
}
public static void change(int[] arr) {
for (int x = 0; x < arr.length; x++) {
if (x % 2 == 0) {
arr[x] *= 2;
}
}
}
}
|
|