黑马程序员技术交流社区
标题:
【一个程序系列】一个程序了解构造代码块和静态代码块
[打印本页]
作者:
xlunaer
时间:
2015-4-14 22:35
标题:
【一个程序系列】一个程序了解构造代码块和静态代码块
package com.xlunaer.alan;
class Super {
Super() {
System.out.println("这是父类的构造方法");
}
{
System.out.println("这是父类的构造代码块");
}
static {
System.out.println("这是父类的静态代码块");
}
}
class Sub extends Super{
Sub() {
System.out.println("这是子类的构造方法");
}
{
System.out.println("这是子类的构造代码块");
}
static {
System.out.println("这是子类的静态代码块");
}
}
public class StaticCodeTest {
public static void main(String[] args) {
Sub b1 = new Sub();
System.out.println("----------------------------------");
Sub b2 = new Sub();
}
}
复制代码
输出结果:
这是父类的静态代码块
这是子类的静态代码块
这是父类的构造代码块
这是父类的构造方法
这是子类的构造代码块
这是子类的构造方法
----------------------------------
这是父类的构造代码块
这是父类的构造方法
这是子类的构造代码块
这是子类的构造方法
复制代码
可以看出:
1. 程序加载的顺序为: 父类的静态代码块—>子类的静态代码块—>父类的构造代码块—>父类的构造方法—>子类的构造代码块—>子类的构造方法。
2. 静态代码块只执行一次,构造代码块随着对象的创建加载。
3. 所以当一段代码需要在程序运行是加载,将该代码放在静态代码块里。当一段代码需要在对象创建的时候加载,将该代码放在构造代码块里。
晚安,睡觉了,明天继续奋斗!!!
作者:
woshixtdx
时间:
2015-4-14 22:37
好!!!!!!!!
作者:
牵猪散步
时间:
2015-4-14 22:46
厉害啊!学习学习!
作者:
xlunaer
时间:
2015-4-15 08:28
woshixtdx 发表于 2015-4-14 22:37
好!!!!!!!!
谢谢支持!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2