创建成员变量的实例



嗨,这是一个基本问题,但请耐心等待。

我有两个类,在类上有另一个类的参考。我如何创建在创建第一类实例时存在于第一类中的第二类实例。是否有任何实用程序可用于此。

法典::

class A  {
B b;
}
class B {
int member;
}
  1. In a Contructor (就像Robert Kock已经说过的那样(
class A  {
B b;
public A(){
b = new B();
b.member = 5;
}
}
  1. 直接作为属性
class A  {
B b = new B(5);  
}
  1. 使用初始值设定项
class A  {
B b;
{
b = new B();
b.member = 5;
}
}

在第一个类的构造函数中:

class A 
{
public A()
{
b = new B();
}
B b;
}

甚至像这样:

class A 
{
public A()
{
}
B b = new B();
}

一般的解决方案是:

public class A {
private final B b;
public A(B b) {
this.b = b;
}    
}
...
A a = new A(new B());

当两个实例相互引用时,这变得很有趣,然后您需要在至少一个类中使用 setter:

public class B {
private A a; // the field cannot be final in this case
public void setA(A a) {
this.a = a;
}    
}
....
B b = new B()
A a = new A(b);
b.setA(a);

类本身创建另一个实例的答案不是通用解决方案。

相关内容

  • 没有找到相关文章

最新更新