zoukankan      html  css  js  c++  java
  • java的函数参数传递

    java中只有一种参数传递方式:传值;这点和c++不一样,c++中有传值和引用两种方式。虽然java只有传值这
    一种传递方式,但是根据参数类型的不同,函数对参数的影响也会不一样。可以这么说:形参是实参的一份拷贝,
    当参数类型是基本数据类型时,对形参的处理不影响实参,也就是你想通过形参交换两个实参是行不通的;当形参
    是对象时(事实上,是对象的引用),形参和实参指向的是同一个对象,所以通过形参对对象进行操作会影响实参
    所指向的对象。我们看看下面的swapList函数
    //交换两个list对象
    public static void swapList(List<Integer> listA,List<Integer> listB){
    List<Integer> temp = listA;
    listA=listB;
    listB=temp;
    }
    执行这个函数
    List<Integer> liA=new ArrayList<Integer>();
    List<Integer> liB=new ArrayList<Integer>();
    int x=3;
    int y=5;
    liA.add(x);
    liB.add(y);
    swapList(liA,liB);//交换
    for(int each:liA)
    System.out.println(each);
    发现打印出来的liA里面的元素还是3,说明交换没有成功,仔细想一下,就会发现执行swapList函数,listA、listB
    分别是liA、liB的一份拷贝,listA与listB交换,listA指向了原来listB指向的对象,listB指向了原来listA指向的
    对象,但是对listA和listB的处理不影响liA、liB。所以liA和liB还是分别指向原来的对象。
    最后,python的参数传递方式与java基本一致。

  • 相关阅读:
    php编程规范整理
    约瑟夫环问题的实现
    MYSQL中SHOW的使用整理收藏
    mysql使用存储过程&函数实现批量插入
    浅谈select for update 和select lock in share mode的区别
    jQuery对象扩展方法(Extend)深度解析
    WCF系列教程之WCF操作协定
    WCF系列教程之WCF实例化
    WCF系列教程之WCF中的会话
    WCF系列教程之WCF服务协定
  • 原文地址:https://www.cnblogs.com/fengfenggirl/p/2844840.html
Copyright © 2011-2022 走看看