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基本一致。

  • 相关阅读:
    P1199三国游戏(博弈论)
    平方求和
    完全立方公式
    P1414 又是毕业季(数论)
    P1514 引水入城(搜索+线段完全覆盖)
    树莓派利用Django搭建聊天网页服务器 —— 准备篇
    树莓派下安装Django环境
    Linux终端光标消失问题
    OpenCV 简介
    树莓派是什么?能干什么?和单片机有什么区别?
  • 原文地址:https://www.cnblogs.com/fengfenggirl/p/2844840.html
Copyright © 2011-2022 走看看