2010-10-25 140 views
1

可能重复:
Instance variable initialization in java凡构造一个对象

您好,可有人告诉我有什么用类实例的声明创建对象的差别/优点或缺点瓦尔即..

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

在构造器

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

谢谢!

+0

可能的重复:http://stackoverflow.com/questions/3918578/should-i-initialize-variable-within-constructor-or-outside-constructor – Emil 2010-10-25 11:37:46

回答

0

在你的情况下,它是有效的。

的区别是,如果

  1. 有依赖于现场的“o”等领域或
  2. 还有其他的构造
  3. 在大写
1

嘛总是有做一个对象如果该类被加载,则在小写的情况下,如果该类被实例化,则只创建该对象。

我想第二种方式总是要走的路,如果你不使场的静态。

0

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

  • 我需要为不同的构造函数(显然)
  • 初始化取决于构造函数(显然)的一些参数
  • 领域的初始化需要的任何工作不同的初始化构造函数,如从其他地方获取价值。

当没有语义差别与往常一样,经验法则是:去你发现最可读的替代。