现在终于理清这三者之间的关系了,总结如下:
package basicTest;
/*
* 这个例子很好的演示了静态代码块 构造代码块 构造函数在程序运行时的加载次序
*
* 静态代码块在初始化对象是就执行而且只执行一次,
* 如果静态代码块与主函数在一个大括号内,则先加载静态代码块
*
* 此外,我们也可以看到,构造代码块的执行优先于构造方法
* */
class Code{
//静态代码块
static{
System.out.println("Code的静态代码块");
}
//构造方法
public Code(){
System.out.println("Code的构造方法");
}
//构造代码块
{
System.out.println("Code的构造块");
}
}
public class CodeBlock03{
{
System.out.println("CodeBlock03的构造块");
}
static{
System.out.println("CodeBlock03的静态代码块");
}
public CodeBlock03(){
System.out.println("CodeBlock03的构造方法");
}
public static void main(String[] args){
System.out.println("CodeBlock03的主方法");
new Code();
/*new Code();
new CodeBlock03();
new CodeBlock03();*/
}
}
|
|