2017-05-04 85 views
0

所以我有一個類A需要在某些情況下創建類B的實例。如果發生這種情況,類B需要能夠調用創建它的類A的實例的方法。將類的當前實例傳遞給新創建的類

如何在Java中以最佳方式實現此目標?我可以將當​​前類的實例傳遞給我創建的第二個實例,以便我可以訪問它的方法,或者是否有實際傳遞方法的方法?

+0

您可以在這些類中使用類的類變量,然後根據需要您可以初始化類並重用其方法 –

+0

'A a = new A();'然後'B b = new B(a) ;'很好。 – matt

+1

你的意思是說'B b = new B(this)','? –

回答

0

一個好的方法是創建一個接口函數,它需要由類B調用,並通過類A實現此接口。現在,當在類A中創建類B的實例時,傳遞通過構造函數將A類對象引用到B類。 例如

interface IA{ 
void foo(); 
} 

class B{ 
    IA aInstance; 
    public B(IA temp){ 
     aInstance = temp; 
    } 
    //call function of A from anywhere like inside this function 
    void function(){ 
     aInstance.foo(); 
    } 
} 
class A implement IA{ 
    B bInstance; 
    public A(){ 
     bInstance = new B(this); 
    } 
    void foo(){ 
     //Implement foo here 
    } 
} 

希望這會有所幫助。

相關問題