在哪里构造一个对象

时间:2010-10-25 11:33:49

标签: java

  

可能重复:
  Instance variable initialization in java

您好,有人可以告诉我使用类实例变量的声明来创建对象有什么区别/优点或缺点,即..

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

到构造函数

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

3 个答案:

答案 0 :(得分:1)

在大写的情况下,如果加载了类,则始终会生成一个对象,在小写的情况下,只有在实例化类时才创建对象。

我想第二种方法总是如果你不把这个字段变成静态的话。

答案 1 :(得分:0)

在你的情况下它实际上是一样的。

区别在于

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

答案 2 :(得分:0)

如果它是一个“普通的”默认构造函数,我通常会在声明中构造它。如果

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

与往常一样,当没有语义差异时,经验法则是:寻找您发现最具可读性的替代方案。