public class Test { String change(String a){
a=new String("abc");
return a;
} public static void main(String[] args) {
Test t=new Test();
String s=new String("ddd");
t.change(s);//1
System.out.println(s);//1
//System.out.println(t.change(b));//2
}
}
输出的是ddd
但是如果1改为2那结果就是变成:
abc
大家讨论啊.挺有趣的,高手谈谈自己的意见啊.
a=new String("abc");
return a;
} public static void main(String[] args) {
Test t=new Test();
String s=new String("ddd");
t.change(s);//1
System.out.println(s);//1
//System.out.println(t.change(b));//2
}
}
输出的是ddd
但是如果1改为2那结果就是变成:
abc
大家讨论啊.挺有趣的,高手谈谈自己的意见啊.
String s=new String("ddd");
System.out.println(s);
s的值就是ddd啊System.out.println(t.change(b));b应该是s吧?虽然不起作用
a=new String("abc"); a的值已经是abc了。
return a;
所以输出a当然是abc了
a=new String("abc");
return a;
} public static void main(String[] args) {
Test t=new Test();
String s=new String("ddd");//s = ddd;
t.change(s);//1调用方法完成之后,方法返回abc, 但是s还是为ddd
System.out.println(s);//1
//System.out.println(t.change(b));//2直接打印出方法的返回值,abc
}
}
哎~~~
rain_cn(rain):就象这位同志说的,的确是很简单的问题.前提是他要知道JAVA对于对象是按引用传参数啊,呵呵还有,System.out.println(t.change(b));b是不是应该写成s?
a=new String("abc");
return a;
}public static void main(String[] args) {
Test t=new Test();
String s=new String("ddd");
t.change(s);//在这你没有获取值,当然不会改变,而你在change中,a是一个新对象了,不是原来你传进去的a了 a=new String("abc");
System.out.println(s);//1
//System.out.println(t.change(b));//这句就相当于String tmp=t.change(s);System.out.println(s);
}我刚写了这方面的一些东西,有兴趣可以看看
http://blog.csdn.net/infon/archive/2007/06/01/1633983.aspx
}
跟参数和返回值有关。