Java中这个代码块背后的原理是什么?
2022-09-01 16:28:55
使这种代码在java中有效的原理是什么?它是出于某种特殊原因而存在的,还是只是其他Java语言设计决策的副产品?难道你不能只使用consructor来达到同样的效果吗?
class Student
{
{
System.out.println("Called when Student class is instantiated.");
}
}
使这种代码在java中有效的原理是什么?它是出于某种特殊原因而存在的,还是只是其他Java语言设计决策的副产品?难道你不能只使用consructor来达到同样的效果吗?
class Student
{
{
System.out.println("Called when Student class is instantiated.");
}
}
一点是它将执行调用的任何构造函数。如果你有几个构造函数,并且它们不相互调用(无论出于何种原因,例如,每个构造函数都想要调用直接对应的超类构造函数),这是确保为所有构造函数执行相同代码的一种方法,而不是将其放在可以在其他地方调用的方法中。
当您编写匿名类时,它也可能很有用 - 您无法编写构造函数,但可以编写初始值设定项块。例如,我已经看到它用于JMock测试。