2014-10-02 84 views
-3

僞代碼:Obj作爲參數,然後返回其他函數?

function A() 
{ 
    Obj objA = new... // 
    function B(objA) 
} 

function B(obj test) 
{ 
    return test; 
} 

    function C() 
{ 
    Obj objC = use function B() to get the objA 
    // do whatever with objC 
} 

我知道這是不是一個好辦法,但如何通過將對象從函數A到函數C?未做一個全局對象... 這是由Java代碼應該...

+0

爲什麼要寫這個..僞代碼,如果真正的代碼將幾乎相同。看看方法是如何工作的,特別是參數和返回類型。 – 2014-10-02 10:57:33

+1

函數C不能調用方法函數B,因爲它需要一個參數。 – 2014-10-02 10:59:52

回答

3

是不是你基本上只是想存儲在該對象的類別?

Class Example { 
    private SomeObject obj; 

    public void A() { 
    obj = new Obj(); 
    } 

    public SomeObject B(SomeObject obj) { 
    this.obj = obj; // save the passed instance into the object 
    return obj; 
    } 

    public void C() { 
    obj.callSomeFunction(); // it'll still exist here, as long as you called A() before C() 
    } 
} 
+0

是的,但是對象從「外部」到達方法B.因此,在這種情況下,我需要複製它 – 2014-10-02 11:01:25

+2

可以存儲作爲參數傳遞以及對象;檢查編輯。另外,您不會複製該對象,而是存儲指向該對象的鏈接。如果您修改了傳遞給B的對象,那麼也要修改初始對象。無論如何,這幾乎總是你想要的。 – Erik 2014-10-02 11:04:08

+1

@BakedInhalf在Java中調用方法,通過引用,這樣你就不會創建對象的副本,你只存儲原始對象的引用 – HashtagMarkus 2014-10-02 11:06:12

相關問題