为了账号安全,请及时绑定邮箱和手机立即绑定

创建成员变量的实例

创建成员变量的实例

一只甜甜圈 2023-07-28 15:17:34
您好,这是一个基本问题,但请耐心等待。我有两个班级,班级上有另一个班级的参考。我如何创建在创建第一类实例时存在于第一类中的第二类实例。是否有任何实用程序可以实现此目的。代码 ::class A  {  B b;}class B { int member;}
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

在构造函数中(就像罗伯特·科克已经说过的那样)

class A  {

  B b;


  public A(){

    b = new B();

    b.member = 5;

  }

}

直接作为属性

class A  {

  B b = new B(5);  

}

带初始化器

class A  {

  B b;

  {

    b = new B();

    b.member = 5;

  }

}


查看完整回答
反对 回复 2023-07-28
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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


class A 

{

  public A()

  {

    b = new B();

  }


  B b;


}

或者甚至像这样:


class A 

{

  public A()

  {

  }


  B b = new B();


}


查看完整回答
反对 回复 2023-07-28
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

一般的解决方案是:


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);

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


查看完整回答
反对 回复 2023-07-28
  • 3 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信