黑马程序员技术交流社区

标题: 对象!参数!传递 [打印本页]

作者: 曹思敏    时间: 2013-6-8 19:14
标题: 对象!参数!传递
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?



作者: 张歆明    时间: 2013-6-8 19:37
楼主注意:Java中明确说了 只有值传递 没有引用传递
其实  这么理解就可以了  以前说的引用传递其实也是值传递的一种
因为引用变量也是变量  存储在栈内存中  引用变量的值不就是地址值么

如果把引用变量作为参数 传给某个函数的时候  其实  就相当于把这个地址值传给了一个在该函数方法内可见的
临时引用变量

e.g.
  1. class A{
  2.    int a =5;
  3.    int b =12;
  4. }

  5. class B{
  6.     public static void change(A obja){
  7.        obja.a =10;
  8.        obja.b =22;
  9.     }

  10.   public static void main(String[] args){
  11.       A oA =new A();
  12.       System.out.println(oA.a +";;;;"+ oA.b);
  13.           change(oA);
  14.       System.out.println(oA.a +";;;;"+ oA.b);
  15.   }
  16. }
复制代码
打印结果:
D:\BlackHorse_Pro\IO>java B5;;;;1210;;;;22
内存图如下:


1234.jpg (26.01 KB, 下载次数: 0)

内存图

内存图

作者: 袁梦希    时间: 2013-6-9 14:55
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2