2
public class Test
{
static void operate(StringBuffer x, StringBuffer y)
{
x.append(y);
y=x;
}
public static void main(String args[])
{
StringBuffer x=new StringBuffer("Sun");
StringBuffer y=new StringBuffer("Java");
operate(x,y);
System.out.println(x+","+y);
}
}
他的版畫:SunJava,爪哇賦值運算符不工作
任何人都可以請解釋爲什麼它被印像,而不是SunJava,SunJava?
謝謝。得到那部分。但爲什麼主函數中的x被操作函數中的追加變爲了? – 2013-02-09 10:53:11
將x看作是指向StringBuffer的指針。追加到x時,實際上是在更改x所指向的對象的狀態。將另一個對象分配給x時,實際上是告訴x指向不同的對象。 – verhage 2013-02-09 11:05:43
在傳遞對象的情況下,它會發生,但如果我通過傳遞,那麼主要值保持不變。 – 2013-02-09 15:22:50