关于java构造器初始化顺序例子
2016-04-29 15:44
513 查看
今天看到一个关于java初始化顺序的问题,以往从来没有意识到这个初始化的顺序竟然如此有趣,下面为自己编写的一个关于验证初始化顺序的小Dome
package test;
import static test.PrintDome.*;
public class InitOrder {
public static void main(String[] args) {
// TODO Auto-generated method stub
House house = new House();
house.printMess();
}
}
class Window{
Window(int num){
print(num);
}
}
class House{
Window w1 = new Window(1);
House(){
4000
print("Hourse()");
Window w2 = new Window(2);
}
Window w3 = new Window(3);
public void printMess(){
print(4);
}
Window w4 = new Window(5);
}
运行结果如下:
1
3
5
Hourse()
2
4
原来每次初始化都会先初始化当前方法中所有的构造器,且是最内层的构造器最先初始化,如运行结果所示非常清晰。
package test;
import static test.PrintDome.*;
public class InitOrder {
public static void main(String[] args) {
// TODO Auto-generated method stub
House house = new House();
house.printMess();
}
}
class Window{
Window(int num){
print(num);
}
}
class House{
Window w1 = new Window(1);
House(){
4000
print("Hourse()");
Window w2 = new Window(2);
}
Window w3 = new Window(3);
public void printMess(){
print(4);
}
Window w4 = new Window(5);
}
运行结果如下:
1
3
5
Hourse()
2
4
原来每次初始化都会先初始化当前方法中所有的构造器,且是最内层的构造器最先初始化,如运行结果所示非常清晰。
相关文章推荐
- Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化
- java集合迭代器Iterator中的remove陷阱
- Java多线程之synchronized和volatile
- eclipse中ant的安装
- Spring 配置JNDI(连接池)
- Java中Vector和ArrayList的区别
- Eclipse常用的快捷键
- Java字符串的10大热点问题盘点
- java基础笔记03
- java常用工具库
- 深入理解Java:String
- eclipse 全局搜索
- 【排序算法】基数排序(java实现)
- java 连接数据库
- Java 8 Optional类深度解析
- 项目导入eclipse中无法启动虚拟器
- 使用FileVisitor遍历文件和目录
- java正则使用
- JAVA多线程编程——JAVA内存模型
- Java 反射