2013-11-28 114 views
0

我有一個疑問,如果我有函數返回的是保持在一個已經存在的類,這樣做的目的:Java對象問題

Class System{ 

    ... 
    Vector<User> clients; 
    ... 
    } 


    //In another class ... 
    User c = getOwner(String username); 
    c.add_value(balance); 


    //Trasaction class 
User owner; 
    .... 

public User getOwner() { 
    return owner; 
} 

是否改變對象的值,我返回並保持在另一個班級?或者它是否製作了該對象的副本?如果是這樣的話,我該如何改變對象而不是製作該對象的副本?

+0

'User c = return_object_user(String username);'是無效的java;你在做什麼?你能更新代碼嗎? – raffian

+0

return_object_user是我創建的一個函數...但我更新了代碼... – exceltior

+1

可能是[是Java「pass-by-reference」?]的重複(http://stackoverflow.com/questions/40480/ is-java-pass-by-reference) – vanza

回答

0

首先,我認爲你的意思

User c = getOwner(username); 

現在,

public User getOwner() { 
    return owner; 
} 

在java中,對對象的引用是按值傳遞。所以,如果你這樣做

c.add_value(balance); 

是的,對象將被改變。