java参数传递总结

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

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

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

 MyClass mc = new MyClass(); //在内存中生成MyClass对象  
 MyClass mc2 = mc; //将mc2指向mc在内存中的对象  
 

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

   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);

 结果:

   1. run:  
   2. 1  
   3. 1  
   4. 0  
   5. 0  
   6. 成功生成(总时间:0 秒)  
 
run:
1
1
0
0
成功生成(总时间:0 秒)
 
   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);

 运行结果:

   1. run:  
   2. add:1  
   3. sub1:2  
   4. sub1:-98  
   5. 成功生成(总时间:0 秒)  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值