zoukankan      html  css  js  c++  java
  • java参数传递总结

    以前学习C的 时候参数传递的方式有两种,一种叫"值传递",值传递传的是一个实体,通俗地说就是传值;另一种叫"引用传递",引用传递传的是指针。

    在这里重点讨论以引用的方式传递参数的方式。

    在java中只要不是new出来的对象那么就是

    Java代码
    1. MyClass mc = new MyClass(); //在内存中生成MyClass对象  
    2. MyClass mc2 = mc; //将mc2指向mc在内存中的对象  
    MyClass mc = new MyClass(); //在内存中生成MyClass对象 MyClass mc2 = mc; //将mc2指向mc在内存中的对象

    上面的mc和cm2是同一个对象。

    Java代码
    1. Operator opt = new Operator();  
    2. MyClass mc = new MyClass();  
    3. MyClass mc2 = mc;  
    4. mc.add();  
    5. System.out.println(mc.i);  
    6. System.out.println(mc2.i);  
    7. opt.sub(mc2);  
    8. System.out.println(mc.i);  
    9. System.out.println(mc2.i);  
    Operator opt = new Operator(); MyClass mc = new MyClass(); MyClass mc2 = mc; mc.add(); System.out.println(mc.i); System.out.println(mc2.i); opt.sub(mc2); System.out.println(mc.i); System.out.println(mc2.i);

    结果:

    Java代码
    1. run:  
    2. 1  
    3. 1  
    4. 0  
    5. 0  
    6. 成功生成(总时间:0 秒)  
    run: 1 1 0 0 成功生成(总时间:0 秒) Java代码 <embed height="15" width="14" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="always" quality="high" flashvars="clipboard=%20%20%20%20%20%20%20%20Operator%20opt%20%3D%20new%20Operator()%3B%0A%20%20%20%20%20%20%20%20MyClass%20mc%20%3D%20opt.getMyClass()%3B%0A%20%20%20%20%20%20%20%20mc.add()%3B%0A%20%20%20%20%20%20%20%20System.out.println(%22add%3A%22%20%2B%20mc.i)%3B%0A%20%20%20%20%20%20%20%20add(mc)%3B%0A%20%20%20%20%20%20%20%20opt.sub1(mc)%3B%0A%20%20%20%20%20%20%20%20System.out.println(%22sub1%3A%22%20%2B%20mc.i)%3B%0A%20%20%20%20%20%20%20%20opt.sub2(mc)%3B%2F%2F%E5%9C%A8%E6%96%B9%E6%B3%95%E9%87%8C%E9%9D%A2%E5%AF%B9%E5%AF%B9%E8%B1%A1%E8%BF%9B%E8%A1%8C%E6%93%8D%E4%BD%9C%E4%B9%9F%E4%BC%9A%E5%AF%B9main%E4%B8%AD%E7%9A%84%E5%AF%B9%E8%B1%A1%E6%9C%89%E5%BD%B1%E5%93%8D%EF%BC%8Creference%E8%B0%83%E7%94%A8%E7%9A%84%E7%BB%93%E6%9E%9C%0A%20%20%20%20%20%20%20%20System.out.println(%22sub1%3A%22%20%2B%20mc.i)%3B" src="http://lauvenman.javaeye.com/javascripts/syntaxhighlighter/clipboard_new.swf" lk_mediaid="lk_juiceapp_mediaPopup_1232590065375" lk_media="yes">
    1. Operator opt = new Operator();  
    2. MyClass mc = opt.getMyClass();  
    3. mc.add();  
    4. System.out.println("add:" + mc.i);  
    5. add(mc);  
    6. opt.sub1(mc);  
    7. System.out.println("sub1:" + mc.i);  
    8. opt.sub2(mc);//在方法里面对对象进行操作也会对main中的对象有影响,reference调用的结果  
    9. System.out.println("sub1:" + mc.i);  
    Operator opt = new Operator(); MyClass mc = opt.getMyClass(); mc.add(); System.out.println("add:" + mc.i); add(mc); opt.sub1(mc); System.out.println("sub1:" + mc.i); opt.sub2(mc);//在方法里面对对象进行操作也会对main中的对象有影响,reference调用的结果 System.out.println("sub1:" + mc.i);

    运行结果:

    Java代码
    1. run:  
    2. add:1  
    3. sub1:2  
    4. sub1:-98  
    5. 成功生成(总时间:0 秒)  
    run: add:1 sub1:2 sub1:-98 成功生成(总时间:0 秒)
  • 相关阅读:
    JS收集<3>:限制URL
    TSQL小收集<1>:为已经存在的表添加唯一约束
    第一个NHibernate实例 yangan
    用Javascript获取select的值 yangan
    获取页面名称语句 yangan
    asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件 yangan
    Log4Net使用指南 yangan
    明确自己的首要责任
    《大数据时代》摘录
    2013年3月阅读链接
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400762.html
Copyright © 2011-2022 走看看