收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:java中传值及引伸深度克隆的思考java中传值及引伸深度克隆的思考

2004-06-28 10:06 出处:CSDN 作者:xiaoyusong 责任编辑:linjixiong

    如:


public class Example{
  int i=0;
}
public class A{
  public int i=0;
  public Example add0(Example e)
  {
     e.i++;
     return e;
   }
  
   public void add1(Example e)
   {
      e.i++;
   }

   public void modify0(Example e)
   {
      Example b=e;//将e行参对象的地址赋给句柄b
      b.i++;//也同时修改了e.i和实参的值
   }
  
   public void modify1(Example e)
   {
     e=new Example();
     e.i++;
   }
   public static void main(String[] args)
  {
     Example ex=new Example();
     A a=new A();
     a=a.add0(ex);//等价于a.add0(ex),无需返回值,因为通过传递的对象地址(句柄),直接修改了ex中i的值
     a.add1(ex);//add0,add1都在其中的方法体中直接修改了ex.i的值,因此add0的返回值有点多余
     a.modify0(ex);//对ex所产生的影响同add1
     a.modify1(ex);//对ex没有产生任何影响(而且这就是等价于什么也没有做).


键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部