如何在java类之间共享对象?

s2j5cfk0  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(286)

这个问题在这里已经有答案了

在不同类的方法之间“共享”变量的正确方法是什么(4个答案)
4个月前关门了。
我有三个java类(a.java&b.java&c.java),它们都位于一个公共包中。我想在类a中创建一个类b(instanceofb)的对象,并且可以在类c中使用该对象。你怎么知道的?谢谢

public class A{
   public B instanceOfB;
}

public class B{ 
}

public class C{ 
}
wgx48brx

wgx48brx1#

您可以使用getter方法从a对象检索类b的示例,并在c中使用它:

public B getB() {
   return this.B;
}
nkkqxpd9

nkkqxpd92#

你需要通过 BC 施工期间。最简单的方法是在 C :

public class C {
  private B myInstanceOfB;

  public C(B instance) {
    this.myInstanceOfB = instance;
  }
}

这意味着无论谁创造了 C 示例必须知道如何做到这一点,并且可以访问 B 示例。有可能您想要“隐藏”那个需求,然后您可以做一些事情,比如为它添加一个工厂方法 C 进入 A 班级:

public class A {
  private B instanceOfB;

  public C createC() {
    return new C(instanceOfB);
  }
}

如果你这样做,你也可以使 C 构造函数包private,向潜在用户指示他们不应尝试直接示例化它(并在javadoc中记录如何获取 C 示例)。
这是否合理取决于a和c之间的关系。

相关问题