我们可以将代码放在构造函数或方法或初始化块中。初始化块有什么用?是不是每个java程序都必须有呢?
原文由 Sumithra 发布,翻译遵循 CC BY-SA 4.0 许可协议
想添加到@aioobe 的回答
执行顺序:
超类的静态初始化块
类的静态初始化块
超类的实例初始化块
超类的构造函数
类的实例初始化块
类的构造函数。
要记住的另外几点(第 1 点是@aioobe 的回答的重申):
静态初始化块中的代码将在类加载时执行(是的,这意味着每次类加载只执行一次),在构造类的任何实例之前和调用任何静态方法之前。
实例初始化块实际上由 Java 编译器复制到类的每个构造函数中。所以每次实例初始化块中的代码都在构造函数中的 代码 之前执行。
原文由 Biman Tripathy 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
首先,有两种类型的 初始化块:
此代码应说明它们的用法以及它们的执行顺序:
印刷:
如果您希望无论使用哪个构造函数都运行某些代码,或者如果您希望对匿名类进行一些实例初始化,则实例初始化块很有用。