构造函数调用和构造函数执行之间有什么区别? 我正在阅读james Gosling的java编程语言中的构造函数顺序依赖。作者指出,当你创建一个对象构造函数时,首先调用,然后使用feild成员进行初始化,最后执行costructor.Both听起来和我一样。
答案 0 :(得分:6)
在这种情况下,"调用"是你调用它,"执行"是实际运行代码的主体。
在你调用它和代码运行的时间之间,字段被初始化。
所以,你调用它,然后初始化发生,然后它被执行。
试试这个:
class Example {
static int report() { System.out.println("initialize"); return 0; }
int x = report(); // <- [Step 2] Initialization
Example () {
System.out.println("execute"); // <- [Step 3] Execution
}
}
然后,在其他地方:
System.out.println("invoke");
new Example(); // <- [Step 1] Invocation
输出将是:
invoke
initialize
execute