21.3代码块考试题

/*
* 代码执行顺序:静态代码块--构造代码块--无参空构造执行
* 思路:静态随着类加载而加载,优先于对象。---创建对象---(代码块,提取构造方法中的公共部分,优先构造方法执行。---构造方法)
* */
public class BlockTest {
public static void main(String[] args) {
Coder c = new Coder();
}
}

class Coder{
static {
System.out.println("Coder 静态代码块");
}

{
System.out.println("coder 构造代码块");
}

public Coder() {
System.out.println("Coder 无参空构造执行");
}
}

执行结果

 



package day21_static.代码块;
/*
* 执行顺序:bl_test,静态代码块---main,BlockTest2的主函数执行了---hello,teacher
* 分析:加载BlockTest2类(加载它的静态代码块:bl_test,静态代码块)---加载main函数(执行main函数---创建对象---执行对象方法)
* 注意:12-18行没执行,因为没有创建对象。构造方法和构造代码块只有在创建对象时会用
* */
public class BlockTest2 {
    static {
        System.out.println("bl_test,静态代码块");
    }

    {
        System.out.println("bl_test,构造代码块");
    }

    public BlockTest2() {
        System.out.println("bl_test,无参构造执行");
    }

    public static void main(String[] args) {
        System.out.println("main,BlockTest2的主函数执行了");
        Teachers t = new Teachers();
    }
}

class Teachers {
    public Teachers() {
        System.out.println("hello,teacher");
    }
        }

 执行结果

 

posted @ 2019-07-15 18:21  龙桑  阅读(170)  评论(0编辑  收藏  举报