标签:span nbsp mod com pass blank tac 调用 images
Java一直是“值传递”而不是引用传递。看一个例子:
public class Main{ public static void main(String[] args){ Foo f = new Foo("f"); changeReference(f); //不改变引用 modifyReference(f); //会修改变量f指向的对象 } public static void changeReference(Foo a){ Foo b = new Foo("b"); a = b; } public static void modifyReference(Foo c){ c.setAttribute("c"); } }
我们来一步步分析这个例子:
1、 声明一个类型Foo的引用f,并将其指向一个带有属性`“f”`的类型Foo的新对象。
Foo f = new Foo("f");
2、
public static void changeReference(Foo a)
3、 当你调用方法changeReference时,引用a将指向作为参数传递过来的对象。
changeReference(f);
4、声明一个名为b的Foo类型的引用,指向一个包含属性“b”的新Foo对象。
Foo b = new Foo("b");
5、 a=b 是将引用a重新指向了含有属性“b”的对象,而不会影响引用f。
6、当你调用方法modifyReference(Foo c)时,创建引用c并将其指向含有属性“f”的对象。
7、 c.setAttribute("c") 会改变引用c所指向的对象的属性,而它与f指向的是同一个对象。
总结如下:
标签:span nbsp mod com pass blank tac 调用 images
原文地址:http://www.cnblogs.com/GuoYaxiang/p/6703239.html