代码如下:
public class Test1 {
String x="hello";
public static void main(String args[]){
Test1 t = new Test1();
t.change(t.x);
System.err.println("change:"+t.x);
t.change1(t);
System.out.println("change1:"+t.x);
}
static void change(String m){
m=m+2;
}
static void change1(Test1 t){
t.x+=2;
}
}
输出:change:hello
change1:hello2
为什么,change函数传递的不是对象x的引用,而是值传递。
首先java中没有引用传递,只有值传递
参考http://guhanjie.iteye.com/blog/1683637
必须通过属性所属对象的引用才能操作属性,change是不能改变t.x的