帮忙看一段代码
class e
{
public static void main(StringBuffer[] args)
{
StringBuffer a=new StringBuffer( "A ");
StringBuffer b=new StringBuffer( "B ");
method(a,b);
System.out.println(a+ ", "+b);
}
static void method(StringBuffer x,StringBuffer y)
{
x.append(y);
y=x;
}
}
我感觉结果应该是AB,AB 可是答案是AB,B这里的y=x;有什么用
[解决办法]
你对变量的作用空间还不理解
参考我在此篇文章中的解答
http://community.csdn.net/Expert/topic/5532/5532201.xml?temp=3.124416E-03
[解决办法]
static void method(StringBuffer x,StringBuffer y)
{
x.append(y); //x 是a的引用,该操作修改了a的内容
y=x; // 该操作仅仅将y的引用从b变成x,并没有改变b的内容
}