换句话说,你为什么需要一个实例初始化器?与构造函数相比,您在编写实例初始化程序时有什么区别或优势?
In other words, why would you need an instance initializer? What difference or advantage do you have in writing a instance initializer over a constructor?
推荐答案这似乎解释得很好:
实例初始值设定项是一个有用的替代实例变量初始值设定项:
Instance initializers are a useful alternative to instance variable initializers whenever:
初始化代码必须捕获异常,或者
initializer code must catch exceptions, or
执行无法用实例变量初始值设定项表达的奇特计算.当然,您可以始终在构造函数.
perform fancy calculations that can't be expressed with an instance variable initializer. You could, of course, always write such code in constructors.
但是在具有多个构造函数的类中,您必须在每个构造函数中重复代码.使用实例初始化程序,您只写一次代码,不管怎样都会执行构造函数用于创建对象.实例初始值设定项是在匿名内部类中也很有用,它不能声明任何构造函数.
来自:JavaWorld 对象初始化Java.
From: JavaWorld Object initialization in Java.
更多推荐
实例初始值设定项与构造函数有何不同?
发布评论