zoukankan      html  css  js  c++  java
  • 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
        }
    }
    
    

  • 相关阅读:
    《Python 源码阅读》之 类型Type
    《Python 源码剖析》之对象
    KMP匹配算法
    Python的递归深度
    js验证手机号
    Jquery 实现 “下次自动登录” 记住用户名密码功能
    js注册读秒进度条
    div+css进度条
    SprignMVC+myBatis整合
    ssm控制输出sql(二)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6049142.html
Copyright © 2011-2022 走看看