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
        }
    }
    
    

  • 相关阅读:
    ajax专题
    luogu P1346 电车 最短路
    luogu P1462 通往奥格瑞玛的道路 最短路
    luogu P1328 生活大爆炸版石头剪刀布
    luogu P1315 联合权值 枚举
    luogu P1156 垃圾陷阱 背包问题
    luogu P1217 回文质数 枚举
    luogu P3650 滑雪课程设计 枚举
    luogu1209 修理牛棚 贪心
    luogu P1223 排队接水 贪心
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/6049142.html
Copyright © 2011-2022 走看看