2011-01-17 27 views
7

Tôi có hai lớp. Class AClass B.chuyển tham chiếu lớp học sang lớp khác

Tôi có chức năng ở Class A mà tôi muốn sử dụng trong class B. Tôi đã suy nghĩ về việc chuyển một tham chiếu của Class A tới hàm tạo của Class B và sau đó gọi hàm sau đó.

Điều đó có hiệu quả không? Ai đó có thể chỉ cho tôi một ví dụ?

Cảm ơn trước!

+0

Bạn không thể vượt qua bằng cách tham chiếu trong java. Một đọc tốt ở đây http://www.yoda.arachsys.com/java/passing.html. – CoolBeans

+4

@CoolBeans. Bạn không thể vượt qua bằng cách tham chiếu, nhưng bạn có thể vượt qua một tham chiếu. Và đó là trong thực tế những gì xảy ra tự nhiên khi bạn nghĩ rằng bạn đang đi qua một đối tượng. –

Trả lời

18

Có, nó sẽ hoạt động. Và đó là một cách tốt để làm điều đó. Bạn chỉ cần vượt qua một dụ của lớp 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. 
    } 
} 

Và sau đó bạn có thể có:

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

@ prolin007 Hoặc điều này quá;) Của ông là prolly tốt hơn. – AedonEtLIRA

+0

cảm ơn bozho, đó là chính xác những gì tôi đang tìm kiếm. – prolink007

+0

nhờ Bozho đây là những gì tôi đang tìm kiếm ...^_ ^ – Cjames

3

Do something như thế này

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

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

Các từ khóa này chủ yếu đề cập đến đối tượng (lớp) nó ở trong.

Các vấn đề liên quan