2017-05-04 7 views
0

So habe ich eine Klasse A, die in einigen Fällen eine Instanz der Klasse B erstellen muss. Wenn dies geschieht, muss Klasse B in der Lage sein, Methoden der Instanz der Klasse A aufzurufen, die sie erstellt hat.Übergeben Sie aktuelle Instanz der Klasse an eine neu erstellte

Wie erreiche ich das auf bestmögliche Weise in Java? Kann ich die aktuelle Instanz der Klasse an die zweite übergeben, die ich erstelle, damit ich auf die Methoden zugreifen kann, oder gibt es eine Möglichkeit, Methoden tatsächlich zu übergeben?

+0

Sie können die Klasse wie eine Klassenvariable in diesen Klassen verwenden und dann je nach Bedarf können Sie die Klasse initialisieren und ihre Methoden wiederverwenden –

+0

'A a = new A();' dann 'B b = new B (a) ; 'Ist vollkommen in Ordnung. – matt

+1

Meinst du so etwas wie 'B b = neues B (this);'? –

Antwort

0

Ein guter Weg, dies zu tun ist, indem Sie eine Schnittstelle mit Funktion erstellen, die von Klasse B aufgerufen werden muss, und diese Schnittstelle über Klasse A implementieren. Wenn Sie nun eine Instanz der Klasse B in Klasse A erstellen, übergeben Sie die Referenz der Klasse A Objekt auf Klasse B durch Konstruktor. z.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 
    } 
} 

Hoffe, das wird helfen.

Verwandte Themen