Ren*_*gas 4 java constructor terminology
构造函数调用和构造函数执行之间有什么区别?我正在阅读james Gosling的java编程语言中的构造函数顺序依赖.作者指出,当你创建一个对象构造函数时,首先调用,然后使用feild成员进行初始化,最后执行costructor.Both听起来和我一样.
在这种情况下,"调用"是指您调用它时,"执行"是指代码体实际运行时.
在您调用它和代码运行的时间之间,字段被初始化.
所以,你调用它,然后初始化发生,然后执行.
试试这个:
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
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在别处:
System.out.println("invoke");
new Example(); // <- [Step 1] Invocation
Run Code Online (Sandbox Code Playgroud)
输出将是:
invoke
initialize
execute
Run Code Online (Sandbox Code Playgroud)