参数传递

参数传递: 在调用方法时,向方法内传入一些数据的动作,传入数据的动作就是参数传递
形式参数: 定义方法时写在小括号之内的东西
实际参数: 调用方法时,真正传入方法里的数据
1.对于基本数据类型(以及String)来说,形式参数的操作不会影响实际参数
值传递 后改变参数的值,原来的数不会改变,就相当于重新开辟一个空间,改变的是新空间的值。

public class Test  {
    public static void main(String[] args) {
        int a = 20;
        int b = 10;
        System.out.println("a = " + a); //20
        System.out.println("b = " + b); //10
        System.out.println("----------");

        //调用change方法将a和b的值传入方法内,将实际参数传给形式参数,a和b传给x和y。x和y加倍后,print,此时调用change方法返回的就是加倍后的值
        change(a, b);

        /*change方法调用完毕后,程序又到了main方法里,此时打印a和b的值输出a和b依旧是20, 10.即可证明形式参数x和y的改变
        不会影响实际参数a和b的值
         */
        System.out.println("----------");
        System.out.println("a = " + a); //20
        System.out.println("b = " + b); //10

    }

    public static void change(int x, int y) {
        x *= 10;
        y *= 10;
        System.out.println("x = " + x); //200
        System.out.println("y = " + y); //100
    }
}

2.对于引用数据类型(除了String)来说,形式参数的操作会影响实际参数。
引用传递,是把引用传过去了,没有开辟空间,改变值还是原来空间的值

public class Test  {
    public static void main(String[] args) {
        int[] array = {10, 20, 30};
        System.out.println(array[0]); //10
        System.out.println(array[1]); //20
        System.out.println(array[2]); //30
        System.out.println("---------");
        change(array);

        /*
        对于数组类型参数,传递的是这个引用(地址值/共享信息),即方法中的数组和传递的数组是一样的。
        所以,改变方法中的数组,那么方法外的数组也改变了
        array和arr指的是同一个数组
         */
        System.out.println("---------");
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);
    }

    public static void change(int[] arr) {
        arr[0] *= 10;
        arr[1] *= 10;
        arr[2] *= 10;
        System.out.println(arr[0]); //100
        System.out.println(arr[1]); //200
        System.out.println(arr[2]); //300
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值