[問題] pass-by-value的問題
public class test {
private int index = 0;
public test()
{
this.index = 0;
}
public void setIndex(int index)
{
this.index = index;
}
public int getIndex()
{
return this.index;
}
public static void assignT(test t)
{
t = new test();
}
public static void main(String[] args){
test t1 = new test();
t1.setIndex(9);
assignT(t1);
System.out.println("value : "+t1.getIndex());
}
}
如果傳入function 裡面的是 object的 reference,
那為什麼執行assignT之後
印出來的值一樣是9而不是0??
假設 t1 的位址是 0xAA
那傳進 assignT 裡的 t 會是copy的一份 0xAA的 object 位址
然後 t = new test(); 會把0xAA的內容指向一個新的 test實體,
這樣理解有錯嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.248.140
→
10/30 18:16, , 1F
10/30 18:16, 1F
※ 編輯: newjoy 來自: 220.135.248.140 (10/30 18:20)
→
10/30 19:24, , 2F
10/30 19:24, 2F
→
10/30 19:25, , 3F
10/30 19:25, 3F
→
10/30 19:32, , 4F
10/30 19:32, 4F
→
10/30 20:39, , 5F
10/30 20:39, 5F
→
10/30 20:41, , 6F
10/30 20:41, 6F
→
10/30 21:07, , 7F
10/30 21:07, 7F
→
10/30 21:10, , 8F
10/30 21:10, 8F
→
11/05 11:45, , 9F
11/05 11:45, 9F
→
11/05 11:53, , 10F
11/05 11:53, 10F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):