2010-10-06 11 views
5


geçmek ++ C
++ (bir işaretçi veya referans değişken olarak ilan eden), referans ile bu fonksiyonu bir parametre geçer ve içeri değişiklik varsa işlev, işlev döndürdüğünde değişiklikler arayana yansıtılır.
Bu, java'da gerçekleşmiyor ve nedenini anladığımdan emin değilim.Java Aşağıdaki içinde karıştı referans

E.g. Işlev parametresi kullanılabileceğini bildiren bir sonuç geri I C kullanmak

//some code processing 
myClass obj = null; 
if(X.aMethod(2,obj)) 
{ 
    obj.methodA();//start using the object 
} 

++ yani: Bu kodu çağrı bir amacı, X yöntem

public boolean aMethod(int id, myClass aClass) 
{ 
    //do some logic 
    aClass = new MyClass(); 
    //configure argument object aClass 
    return true; 
} 

olduğu ama java'da bu işe yaramıyor.
Ben if (X.aMethod (2 obj)) dalı girmek ama obj boş. Niçin null?
Ben aMethod (int id, myClass aTavsiye sınıfı) yöntemi içinde yeni kullanılarak yığın bir bellek adresi atanır mı? Bu objedeki "adres" kelimesini geçmiyor muyum? Doğru olarak oluşturulmuş ve çağrı kodunda kullanılabilir olmasını beklerdim. Java ile ilgili bir şeyi yanlış anladım mı?

+1

olası yinelenen [? Referansla geçişte arasındaki farktır ve referans ile dediğimiz] "Java, Dammit Geçiş By değer" /stackoverflow.com/questions/3660180/what-is-the-difference-between-pass-by-reference-and-call-by-reference) –

cevap