构造函数中的变量初始化
创建 Java 对象时,有两种初始化实例变量的选项:
实例化声明
class A { B b = new B(); }
构造函数中的实例化
class A { B b; A() { b = new B(); } }
每种方法的优点:
相同行为:
编译器会自动为任一方法生成等效的初始化代码,因此没有功能差异。
可读性:
一些开发人员更喜欢第一种方法,因为它可以更直接地清楚地表明哪些变量正在初始化。
异常处理:
在第二种方法中,您可以在构造函数中使用异常处理来处理变量初始化期间潜在的错误。
初始化块:
除了如上所述,还可以使用初始化块来初始化变量。与字段声明类似,初始化块会自动放置在构造函数中。
{ a = new A(); }
延迟初始化:
如果初始化变量的成本很高,您可以通过设置它来选择延迟初始化在仅在需要时创建对象的 getter 方法中。
ExpensiveObject o; public ExpensiveObject getExpensiveObject() { if (o == null) { o = new ExpensiveObject(); } return o; }
依赖关系管理:
为了增强依赖管理,请考虑避免使用 new 运算符直接实例化。相反,采用依赖注入,其中另一个类或框架处理对象创建和依赖注入。
以上是Java 变量初始化:构造函数与声明 – 哪个更好?的详细内容。更多信息请关注PHP中文网其他相关文章!