• Java中值传递的实质,形式参数与实际参数。引用传递。


    值传递

    package ch5;
    
    /**
     * Created by Jiqing on 2016/11/9.
     */
    public class Transfer {
        public static void swap(int a,int b) {
            int tmp = a;
            a = b;
            b = tmp;
            System.out.println("swap方法中,a的值是"+a+",b的值是"+b);
        }
    
        public static void main(String[] args) {
            int a = 6;
            int b = 9;
            swap(a,b); // swap方法中,a的值是9,b的值是6
            System.out.println("交换结束后,a的值是"+a+",b的值是"+b); // 交换结束后,a的值是6,b的值是9
            // 传参数相当于复制,swap中的a、b是复制品
        }
    }
    
    

    参数传递相当于复制一个孙悟空,真身没受影响。
    真身就是实参,复制的孙悟空就是形式参数。
    当系统开始执行方法时,系统为形式参数初始化,把实参变量的值赋给形参变量,方法里操作的只是形式参数而已。
    实参本身没有受到影响。

    引用传递(对象引用,指向对象地址)

    package ch5;
    
    /**
     * Created by Jiqing on 2016/11/9.
     */
    public class DataWrap {
        int a;
        int b;
    }
    
    
    package ch5;
    
    /**
     * Created by Jiqing on 2016/11/9.
     */
    public class ReferenceTransfer { // 引用传递
        public static void swap(DataWrap dw) { // 复制一个dw的引用,指向对象
            int tmp = dw.a;
            dw.a = dw.b;
            dw.b = tmp;
            System.out.println("swap方法中,a的值是"+dw.a+",b的值是"+dw.b);
            dw = null; // 把它杀掉
        }
    
        public static void main(String[] args) {
            DataWrap dw = new DataWrap();
            dw.a = 6;
            dw.b = 9;
            swap(dw);//swap方法中,a的值是9,b的值是6
            System.out.println("交换结束后,a的值是"+dw.a+",b的值是"+dw.b);//swap方法中,a的值是9,b的值是6
        }
    }
    
    

  • 相关阅读:
    IOSUITextField类
    IOSUITableView设置背景图片,方式与众不同。
    IOS图标知识详情(转载自http://luoyl.info/blog/2012/03/iphoneipadicons/)
    IOSCreate UIActionSheet 'otherButtons' by passing in array
    Offset文件名(绝对偏移量)
    单例模式(Singleton)Holder
    在 spring 中一共定义了七种事务传播属性
    UML,各种关系合集
    Java,线程池,ThreadPoolExecutor
    EasyMock
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6049142.html
Copyright © 2020-2023  润新知