创建成员变量的实例

时间:2019-09-12 11:57:21

标签: java instance-variables

嗨,这是一个基本问题,请多多包涵。

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

代码::

class A  {
  B b;
}

class B {
 int member;
}

3 个答案:

答案 0 :(得分:2)

  1. 在建设者中(就像罗伯特·科克已经说过的那样)
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;
  }
}

答案 1 :(得分:1)

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

var obj = {
      "_15800175": {
          "posID": "159469",
          "scanID": "22597",
          "anr": "15800175",
          "TVanr": "",
          "code": "G-09-27-2E",
          "ean": "4710069680575",
          "marke": "fox",
          "bez": "jersey yellow",
          "bez2": "size xl",
          "menge": "1",
          "ve": "St\u00fcck",
          "Dimensionstext": "TT9857BG\r\n",
          "Langtext": ""
      },
      "_15100027": {
          "posID": "159471",
          "scanID": "22597",
          "anr": "15100027",
          "TVanr": "",
          "code": "G-11-03-2A",
          "ean": "4712511825411",
          "marke": "fox",
          "bez2": "jersey L",
          "menge": "1",
          "ve": "St\u00fcck",
          "Dimensionstext": "blue\r\n",
          "Langtext": ""
      }
  }

  var menge_sum = Object.keys(obj).reduce(function(old, cur) {
      old += Number(obj[cur]['menge'])
      return old
  }, 0);
  console.log(menge_sum)

甚至是这样:

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

  B b;

}

答案 2 :(得分:1)

一般的解决方案是:

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

该类创建其他实例本身的答案不是一般解决方案。