Java 在何处构造对象

Java 在何处构造对象,java,Java,可能重复: 您好,有人能告诉我使用类实例变量ie.的声明创建对象的区别/优点或缺点吗 public class ClassName{ Object o = new Object(); } 承包人 public class ClassName{ Object o; public ClassName(){ o = new Object(); } } 谢谢大家! 在您的情况下,实际上是相同的 区别在于 还有其他字段依赖于字段“o”或 还有其他的建

可能重复:

您好,有人能告诉我使用类实例变量ie.的声明创建对象的区别/优点或缺点吗

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

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

谢谢大家!

在您的情况下,实际上是相同的

区别在于

  • 还有其他字段依赖于字段“o”或
  • 还有其他的建设者

  • 在你的情况下,它实际上是相同的

    区别在于

  • 还有其他字段依赖于字段“o”或
  • 还有其他的建设者

  • 在上例中,如果类被加载,则始终会生成一个对象,而在下例中,仅当类被实例化时才创建对象


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

    在大写形式中,如果类被加载,则始终会生成一个对象,在小写形式中,如果类被实例化,则仅创建对象


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

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

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

    与往常一样,当没有语义差异时,经验法则是:选择你认为可读性最强的替代方法,如果它是一个“微不足道”的默认构造函数,我通常在声明中构造它。如果

    • 我需要为不同的构造函数进行不同的初始化(显然)
    • 初始化取决于构造函数的某些参数(显然)
    • 字段的初始化需要任何工作,例如从其他地方获取值
    与往常一样,在没有语义差异的情况下,经验法则是:选择你认为可读性最强的替代方案