参数传递练习题

package mxdx; 

public class Mytest {
// 看程序写结果

public static void main(String[] args) {
//a,b为 main方法上的两个局部变量 ,定义两个局部变量

int a = 10;
int b = 20;
System.out.println("a: " + a + ",b: " + b); // 1. 直接打印,a=10,b=20.
change(a,b); //调用change方法(注意匹配下面两个同名方法中类型合适的那个

// 局部变量属于方法,方法调用完毕即弹栈,局部变量随方法弹栈而消失
System.out.println("a: " + a + ",b: " + b); // 4. 此时a.b打印值为最初的值 a=10,b=20.

//定义一个一维数组
int[] arr = {1,2,3,4,5};
//调用change方法
change(arr);
System.out.println(arr[1]); //5. 满足循环条件的只有2和4,组成的新数组为{1,4,3,8,5},所以打印值为4.
}

public static void change(int a,int b) {

System.out.println("a: " + a + ",b: " + b); // 2. 直接打印,a=10.b=20.
a = b;
b = a + b;
System.out.println("a: " + a + ",b: " + b); // 3 .经过简单运算,a=20,b=40.
}

public static void change(int[] arr){
for(int x = 0 ; x < arr.length ; x++){ // for 循环
if(arr[x]%2 == 0){ //表示一维数组中的元素除以2的余数是0(也就是偶数)即满足循环条件
arr[x] *= 2; //给满足条件循环的元素乘以2,即组成了一个新的一维数组
}
}
}



}
         
总结

引用类型作为参数传递传的是地址值,形参改变会影响实参。
基本类型作为参数传递(值传递),形参改变不会改变实参。
局部变量属于方法,随着方法调用而产生,随着方法弹栈而消失。

猜你喜欢

转载自www.cnblogs.com/denglulu/p/12124908.html
今日推荐