日期:2014-05-20  浏览次数:20730 次

求解释几个题目
4、读程序,写出和程序输出格式一致的输出结果。
public class J_Test {
public static void mb_method(StringBuffer x, StringBuffer y) {
x.append(y);
y = x;
}
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
mb_method(a, b);
System.out.println(a + "," + b);
}
}
输出结果:
AB,B

------解决方案--------------------
只要明白对象引用的概念和java传参方式就好懂了。
public class J_Test {
public static void mb_method(StringBuffer x, StringBuffer y) {//x、y是形参
x.append(y);//通过对象引用操作对象,改变的是x引用的对象
y = x;//对引用进行赋值,即y现在变成了x引用的对象的一个引用
}
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
mb_method(a, b);//a、b是实参,传的是引用 a和b的值,即相当于形参x=a、y=b。所以y=x不会影响b的值
System.out.println(a + "," + b);
}
}