2011-01-17 11 views
7

Mam dwie klasy. Class A i Class B.przekazywanie odwołania do klasy innej klasie

Mam funkcję w Class A, którą chciałbym użyć w class B. Myślałem o przekazaniu referencji Class A do konstruktora Class B, a następnie wywołanie funkcji po tym.

Czy to działa? Czy ktoś może pokazać mi przykład?

Z góry dziękuję!

+0

Cóż, nie można przejść przez odniesienie w java. Dobrze przeczytać tutaj http://www.yoda.arachsys.com/java/passing.html. – CoolBeans

+4

@CoolBeans. Nie możesz przejść przez referencję, ale możesz przekazać referencję. I w rzeczywistości dzieje się to naturalnie, gdy myślisz, że przekazujesz przedmiot. –

Odpowiedz

18

Tak, to zadziała. I jest to dobry sposób na zrobienie tego. Wystarczy zdać instancji klasy A:

public class Foo { 
    public void doFoo() {..} // that's the method you want to use 
} 

public class Bar { 
    private Foo foo; 
    public Bar(Foo foo) { 
     this.foo = foo; 
    } 

    public void doSomething() { 
     foo.doFoo(); // here you are using it. 
    } 
} 

I wtedy można mieć:

Foo foo = new Foo(); 
Bar bar = new Bar(foo); 
bar.doSomething(); 
+0

@ prolin007 Albo to też;) Jego jest znacznie lepiej. – AedonEtLIRA

+0

dzięki Bozho, właśnie tego szukałem. – prolink007

+0

dzięki Bozho tego właśnie szukam ...^_ ^ – Cjames

3

zrobić coś takiego

class ClassA { 
    public ClassA() { // Constructor 
    ClassB b = new ClassB(this); 
} 

class ClassB { 
    public ClassB(ClassA a) {...} 
} 

Słowo kluczowe this zasadniczo odnosi się do obiektu (klasa) jest w.

Powiązane problemy