java中变量、代码块、构造执行顺序
来源:互联网 发布:携程抢票靠谱吗 知乎 编辑:程序博客网 时间:2024/05/29 17:38
首先创建3个类:
1、Foo类,用于打印变量
public class Foo { public Foo(String word) { System.out.println(word); }}
2、Parent类
public class Parent { static Foo FOO = new Foo("Parent's static parameter"); Foo foo = new Foo("Parent's parameter"); static { System.out.println("Parent's static code block"); } { System.out.println("Parent's code block"); } public Parent() { System.out.println("Parent.Parent()"); }}
3、Child类
public class Child extends Parent{ static Foo FOO = new Foo("Child's static parameter"); Foo foo = new Foo("Child's parameter"); static { System.out.println("Child's static code block"); } { System.out.println("Child's code block"); } public Child() { System.out.println("Child.Child()"); }}
接下来运行实例:
public class Run { public static void main(String[] args) { new Child(); }}
打印结果:
Parent's static parameterParent's static code blockChild's static parameterChild's static code blockParent's parameterParent's code blockParent.Parent()Child's parameterChild's code blockChild.Child()
总结
Java中的静态变量和静态代码块是在类加载的时候就执行的,实例化对象时,先声明并实例化变量再执行构造函数。如果子类继承父类,则先执行父类的静态变量和静态代码块,再执行子类的静态变量和静态代码块。同样,接着在执行父类和子类非静态代码块和构造函数。
注意:(静态)变量和(静态)代码块的也是有执行顺序的,与代码书写的顺序一致。在(静态)代码块中可以使用(静态)变量,但是被使用的(静态)变量必须在(静态)代码块前面声明。
最后给出执行步骤:
1、父类静态变量和静态代码块(先声明的先执行);
2、子类静态变量和静态代码块(先声明的先执行);
3、父类的变量和代码块(先声明的先执行);
4、父类的构造函数;
5、子类的变量和代码块(先声明的先执行);
6、子类的构造函数。
阅读全文
0 0
- java中成员变量、代码块、构造函数执行顺序
- java中变量、代码块、构造执行顺序
- java 静态代码块、静态变量、成员变量、构造代码块、构造方法的执行顺序
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
- 变量初始化,构造代码块,静态代码块,执行顺序
- Java中static代码块、普通代码块和构造代码块的执行顺序
- java 中代码块、构造函数的执行顺序
- Java中构造函数、构造代码块、静态代码块等的执行顺序问题
- java中静态代码块,构造代码块,构造方法,main方法的执行顺序
- Java中静态代码块、构造代码块构造函数的执行顺序
- java中代码块的执行顺序--静态代码块,构造器,普通代码块,构造块,main主函数
- Java静态变量 静态代码块 主函数 成员变量 构造代码块 构造函数的执行顺序
- Java普通代码块,构造代码块,静态代码块,成员变量的执行顺序的代码实例
- java构造代码块执行顺序问题
- Java初学者Paulmarkyes---中静态代码块,普通代码块,构造代码块,构造方法先后执行顺序以及区别
- java 静态代码块 代码块 构造函数执行顺序
- 举例说明java中静态代码块、非静态代码块、构造函数的执行顺序
- Java中静态代码块、非静态代码块和构造函数的执行顺序
- MPEG音频编码实验报告
- cmd修改UTF-8编码
- struts2入门3
- azkaban-2.5.0 启动报错Invalid maximum heap size: -Xmx4G 解决
- POJ2431 Expedition【贪心+优先队列】
- java中变量、代码块、构造执行顺序
- Verilog语言设计增加延时的正确方法
- ${pageContext.request.contextPath} :JSP取得绝对路径方法
- hibernate入门1
- SDIO驱动(15)使用DMA传输数据1
- Linux搭建Git服务器
- 鼠标事件
- 配置Python环境、跑通第一个程序
- 微信小程序--wx:for