-2

作成されていないクラス内からクラスの関数にアクセスしようとしています。

基本的に、 b.refresh(); を実行できるクラス A があります。

b には明らかに、リフレッシュと呼ばれる機能が含まれています。クラスCにアクセスさせたいと思います。

したがって、私の考えでは、cbrefresh(); のようなものになります。しかし、これは明らかに機能しません。

それを機能させるために何をする必要がありますか?B のインスタンスは 1 つだけ許可されます。

メインクラス:

B b = new b();
b.refresh();
C c = new C();

インサイド C:

function() {
//want to access the same b from Main class.
}
4

2 に答える 2

2

私はあなたがBインスタンスを共有したいと思うので:

public class C {

   private B b;

   C(B b) {
      this.b = b;
   }

   public refresh() {
      b.refresh();
  }
}

今、あなたはすることができます:

B b = new B();
C c = new C(b);
c.refresh();

そして、同じBインスタンスを渡すAクラスでできることと同じです:

A a = new A(b);
于 2012-11-01T11:51:59.210 に答える
2

クラス C が単にクラス B のメソッドにアクセスしたくない場合

B b=new B();
b.refresh();

クラスAは見えません

于 2012-11-01T11:50:01.797 に答える