函数初始化的问题:以下是复制博客的一些东西。
Java存在构造初始化和自动初始化吗?
东:
public class OrderOfInitialization {
public static void main(String[] args) {
House h = new House();
h.f();
}
}
class Window {
Window(int marker) {
System.out.println("window(" + marker + ")");
}
}
class House {
Window w1 = new Window(1);
House() {
System.out.println("House()");
w3 = new Window(33);
}
Window w2 = new Window(2);
void f() {
System.out.println("f()");
}
Window w3 = new Window(3);
}
/*
* output:
window(1)
window(2)
window(3)
House()
window(33)
f()
*/
东:
在Employee中有两个地方会对两个成员变量进行初始化,分别是初始化块和构造函数
下面介绍下Java中构造函数的执行步骤:
1.将所有的数据域全部初始化为默认值(0, false, null)。
2.按照在类中的声明顺序,依次执行初始化语句和初始化块。
3.如果这个构造函数的第一行调用了其他构造函数,转去执行其他构造函数。
4.执行构造函数主体。