您的位置:首页 > 编程语言 > Java开发

java程序初始化顺序初探

2016-03-04 20:57 489 查看
在JAVA语言中,当实例化对象时候,首先要进行类所在成员变量的初始化,才会调用构造函数创建对象。

JAVA程序的初始化一般3原则:1. 静态对象(变量)优先非静态对象(变量)初始化,其中,静态变量只初始化一次,非静态变量可以初始化多次。2:父类优先于子类初始化。3. 成员变量按定义顺序进行初始化,即使散布于方法定义内,他们依然在任何方法(包括构造函数)被调用前初始化。

JAVA初始化可以在不同块中完成,执行顺序: 父类静态变量 -- 父类静态代码块 -- 子类静态变量 -- 子类静态代码块 -- 父类非静态变量 -- 父类非静态代码块 -- 子类非静态变量 -- 子类非静态代码块。

class Base{

    

    static{

        

        System.out.println("1 Father static block");

        

    }

    

    {

        

        System.out.println("3 Father block");

        

    }

    

    public Base(){

        

        System.out.println("4 Father constructor");

        

    }

    

}

public class InitializeTest extends Base{

    

    public InitializeTest() {

      

        System.out.println("5 Son constructor");

    }

    

    static{

        

        System.out.println("2 Son static block");

        

    }

    

    public static void main(String[] args) {

        

        new InitializeTest();

    }

}

输出结果是:

1 Father static block

2 Son static block

3 Father block

4 Father constructor

5 Son constructor
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: