黑马程序员技术交流社区

标题: 关于代码块执行顺序的问题 [打印本页]

作者: 周亮    时间: 2012-12-30 14:32
标题: 关于代码块执行顺序的问题
public class Person {

        // 构造代码块
        {
                cry();
        }

        {
                System.out.println("终于见到这个世界了");
        }

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

        public Person() {
                // cry();
                System.out.println("构造方法");
        }

        public Person(int age) {
                // cry();
                System.out.println("带参数构造方法");
        }

        public void cry() {
                System.out.println("哇哇哇");
        }

}

子父类关系时:
public class Person {
        {
                System.out.println("Person构造代码块");
        }

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

        public Person() {
                System.out.println("Person构造方法");
        }
}

public class Son extends Person {
        {
                System.out.println("Son构造代码块");
        }

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

        public Son() {
                //super();
                System.out.println("Son构造方法");
        }
}


//测试方法
public static void main(String[] args) {
        Son son = new Son();
}
Person静态代码块
Son静态代码块
Person构造代码块
Person构造方法
Son构造代码块
Son构造方法
静态代码块执行一次,构造代码块每次调用构造方法的时候都会执行。
他们的执行顺序是:静态代码块 -- 构造代码块 -- 构造方法
作者: 许庭洲    时间: 2012-12-31 07:22
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2