Java 2个类,另一个类的构造函数中有一个参数
假设我有A类和B类。它们的构造函数如下所示:Java 2个类,另一个类的构造函数中有一个参数,java,Java,假设我有A类和B类。它们的构造函数如下所示: public A(B b) {this.b = b;} public B(A a) {this.a = a;} 它们都有另一个类的实例作为实例变量 是否可以在instancevariable不为null的情况下创建这些类的实例? 我想要一个类A的实例和一个类B的实例。类A的实例应该添加类B的实例作为其实例变量,反之亦然。其中一个类,让我们选择A,将需要一个方法 public void setB(B b) { this.b = b; }
public A(B b) {this.b = b;}
public B(A a) {this.a = a;}
它们都有另一个类的实例作为实例变量
是否可以在instancevariable不为null的情况下创建这些类的实例?
我想要一个类A的实例和一个类B的实例。类A的实例应该添加类B的实例作为其实例变量,反之亦然。其中一个类,让我们选择
A
,将需要一个方法
public void setB(B b) {
this.b = b;
}
可以在实例化
A
和B
对象之后调用。两个类紧密耦合。如果每个类实例都需要另一个进行初始化,则需要从一开始就修改类设计。相反,在这种情况下,使用setter
将有助于归档一个实例的目标,而归档另一个实例的目标
class A {
private B b;
public A(B b) { this.b = b; }
}
class B {
private A a;
void setA(A a) { this.a = a; }
}
B b = new B();
A a = new A(b);
b.setA(a);
这不是问题作者想要避免的解决方案吗?