web-dev-qa-db-ja.com

クラスのオブジェクトを別のクラスに渡す

私には2つのクラスがあります。 Class AおよびClass B

Class Aで使用したい関数がclass Bにあります。 Class Aの参照をClass Bのコンストラクターに渡し、その後関数を呼び出すことを考えていました。

それはうまくいくでしょうか?誰かが私に例を見せてもらえますか?

前もって感謝します!

8
prolink007

はい、動作します。そして、それはそれを行うためのまともな方法です。クラス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();
21
Bozho

このようなことをする

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

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

Thisキーワードは、基本的に、それが含まれるオブジェクト(クラス)を参照します。

3
ahodder