实例初始值设定项与构造函数有何不同? [英] How is an instance initializer different from a constructor?

查看:33
本文介绍了实例初始值设定项与构造函数有何不同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

换句话说,你为什么需要一个实例初始化器?与构造函数相比,您在编写实例初始化程序时有什么区别或优势?

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.

这篇关于实例初始值设定项与构造函数有何不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆