【发布时间】:2013-06-09 05:10:24
【问题描述】:
我无法理解为什么在 'c' 之前打印 'y'...我在这里遗漏了什么.. 请帮忙
public class Sequence {
Sequence() {
System.out.print("c ");
}
{
System.out.print("y ");
}
public static void main(String[] args) {
new Sequence().go();
}
void go() {
System.out.print("g ");
}
static {
System.out.print("x ");
}
}
【问题讨论】:
-
@PSR 它编译得很好。
-
这里没有编译错误
-
System.out.print("y");语句是单独的?是什么意思
-
@PSR 这是一个实例初始化程序块,它在 every 构造函数的对象实例化时运行,但它在调用的实际构造函数的主体之前执行(因此
y是在c之前打印)。 -
@PSR 下次测试代码,然后说它不会编译。
标签: java