【问题标题】:Where to construct an object [duplicate]在哪里构造对象[重复]
【发布时间】:2011-04-30 04:07:30
【问题描述】:

可能重复:
Instance variable initialization in java

你好,谁能告诉我用类实例变量的声明创建一个对象的区别/优点或缺点,即..

public class ClassName{
    Object o = new Object();
}

到构造器中

public class ClassName{ 
    Object o;
    public ClassName(){
        o = new Object();
    }
}

谢谢!

【问题讨论】:

标签: java


【解决方案1】:

如果它是“微不足道的”默认构造函数,我通常会在声明中构造它。我把它放在构造函数中如果

  • 我需要为不同的构造函数进行不同的初始化(显然)
  • 初始化取决于构造函数的某些参数(显然)
  • 字段的初始化需要任何工作,例如从其他地方获取值。

与往常一样,在没有语义差异的情况下,经验法则是:选择您认为最易读的替代方案。

【讨论】:

    【解决方案2】:

    在大写的情况下,如果类被加载,总是会创建一个对象,在小写的情况下,你只有在类被实例化时才创建对象。

    如果您不将字段设为静态,我想第二种方式总是可行的。

    【讨论】:

      【解决方案3】:

      你的情况实际上是一样的。

      如果

      1. 还有其他字段依赖于字段“o”或
      2. 还有其他构造函数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多