передача объекта класса в другой класс - PullRequest
8 голосов
/ 18 января 2011

У меня есть два класса. Class A и Class B.

У меня есть функция в Class A, которую я хотел бы использовать в class B. Я думал о передаче ссылки Class A в конструктор Class B и последующем вызове функции.

Будет ли это работать? Может кто-нибудь показать мне пример?

Заранее спасибо!

Ответы [ 2 ]

21 голосов
/ 18 января 2011

Да, это будет работать. И это достойный способ сделать это. Вы просто передаете экземпляр класса 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.
   }
}

И тогда вы можете иметь:

Foo foo = new Foo();
Bar bar = new Bar(foo);
bar.doSomething();
3 голосов
/ 18 января 2011

Сделай что-нибудь подобное

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

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

Это ключевое слово по существу относится к объекту (классу), в котором он находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...