zoukankan      html  css  js  c++  java
  • 静态代码块、构造代码块和构造函数的执行顺序

    本文前面稍微介绍了一下构造代码块和静态代码块的注意点,如果急需了解执行这三者执行顺序的话可以直接看向最后。

    一 .构造代码块

    {
        //这个就是构造代码块
    }

    关于构造代码块,以下几点需要注意:

      1.构造代码块是用来给对象进行初始化的。

      2.对象一创建就运行构造代码块,并且优先于构造函数。

      3.构造代码块和构造函数的区别:

        构造代码块是给对象进行统一初始化的,而构造函数是给对应的对象初始化,因此构造函数可以有多个,运行哪个构造函数就创建出什么样的对象,但无论创建什么样的对象,都会执行相同的构造代码块。即构造代码块中定义的是不同对象共性的初始化内容。

    二.静态代码块

    static{
        //这就是静态代码块
    }

    关于静态代码块,以下几点需要注意:

      1.静态代码块是随着类的加载而执行的,并且只执行一次,且优先于主函数。

      2.静态代码块是给类初始化的,且一个类中可以有多个静态代码块

    三.执行顺序

      1.对于只有一个类的情况:

        静态代码块>构造代码块>构造函数

      2.对于存在继承的情况:

        1).执行父类的静态代码块

        2).执行子类的静态代码块

        3).执行父类的构造代码块,然后执行构造函数

        4).执行子类的构造代码块,然后执行构造函数

        (在创建子类对象的时候,会调用super方法,所以是先初始化父类,那就得先执行构造代码块,然后执行构造方法)

  • 相关阅读:
    entity framework 查看自动生成的sql
    如何从只会 C++ 语法的水平到达完成项目编写软件的水平?
    C/C++程序员必须熟练应用的开源项目
    VS2013创建Windows服务
    VS2013中使用Git建立源代码管理
    PowerDesigner导出表到word
    SQLSERVER的逆向工程,将数据库导入到PowerDesigner中
    Asp.Net MVC+EF+三层架构的完整搭建过程
    QT开发(一)Vs2013集成 QT5.3.1
    VS2013 好用的插件
  • 原文地址:https://www.cnblogs.com/wsxdev/p/11520191.html
Copyright © 2011-2022 走看看