Java字段初始化

时间:2013-03-11 20:46:55

标签: java

假设我有一个B类,其中C类成员为字段。

现在我为B编写了一个构造函数,以便它的默认构造函数不会被合成。

B's构造函数未明确初始化C类型字段。

Class B
{
  C obj_c;

  B()
  { }
}

在C ++中,obj_c的默认构造函数将被称为coz默认构造函数的非初始化成员将被隐式调用为Object类型成员。关于Java的什么?

如果构造函数没有在Java中初始化字段会发生什么?

2 个答案:

答案 0 :(得分:7)

对于布尔值,未初始化的成员变量会自动初始化为false,对于数字会自动初始化为0,对象引用会自动初始化为null,这是obj_c落在此处的位置。它被初始化为null

修改

不是将构建器初始化为null的构造函数;根据{{​​3}},如果你不初始化它们,Java将初始化类变量和实例变量。

答案 1 :(得分:1)

C的构造函数不是隐式调用的。必须通过字段初始化或构造函数设置显式调用它。