zoukankan      html  css  js  c++  java
  • 【知识总结】Java类初始化顺序说明

    微信公众号:努力编程的小猪
    如有问题或建议,请公众号留言

    Java类初始化顺序说明

    一个类中包含如下几类东西,他们前后是有顺序关系的

    1. 静态属性:static 开头定义的属性
    2. 静态方法块: static {} 圈起来的方法块
    3. 普通属性: 未带static定义的属性
    4. 普通方法块: {} 圈起来的方法块
    5. 构造函数: 类名相同的方法
    6. 方法: 普通方法

    初始化顺序

    public class LifeCycle {
    // 静态属性
    private static String staticField = getStaticField();
    // 静态方法块
    static {
    System.out.println(staticField);
    System.out.println("静态方法块初始化");
    System.out.println("Static Patch Initial");
    }
    // 普通属性
    private String field = getField();
    // 普通方法块
    {
    System.out.println(field);
    System.out.println("普通方法块初始化");
    System.out.println("Field Patch Initial");
    }
    // 构造函数
    public LifeCycle() {
    System.out.println("构造函数初始化");
    System.out.println("Structure Initial ");
    }

    public static String getStaticField() {
    String statiFiled = "Static Field Initial";
    System.out.println("静态属性初始化");
    return statiFiled;
    }

    public static String getField() {
    String filed = "Field Initial";
    System.out.println("普通属性初始化");
    return filed;
    }
    // 主函数
    public static void main(String[] argc) {
    new LifeCycle();
    }
    }

    执行结果:

    静态属性初始化
    Static Field Initial
    静态方法块初始化
    Static Patch Initial
    普通属性初始化
    Field Initial
    普通方法块初始化
    Field Patch Initial
    构造函数初始化
    Structure Initial

    总结:包含父子类和接口类

    普通类:
    • 静态变量
    • 静态代码块
    • 普通变量
    • 普通代码块
    • 构造函数
    继承的子类:
    • 父类静态变量
    • 父类静态代码块
    • 子类静态变量
    • 子类静态代码块
    • 父类普通变量
    • 父类普通代码块
    • 父类构造函数
    • 子类普通变量
    • 子类普通代码块
    • 子类构造函数
    抽象的实现子类: 接口 - 抽线类 - 实现类
    • 接口静态变量
    • 抽象类静态变量
    • 抽象类静态代码块
    • 实现类静态变量
    • 实习类静态代码块
    • 抽象类普通变量
    • 抽象类普通代码块
    • 抽象类构造函数
    • 实现类普通变量
    • 实现类普通代码块
    • 实现类构造函数
    接口注意:
    • 声明的变量都是静态变量并且是final的,所以子类无法修改,并且是固定值不会因为实例而变化
    • 接口中能有静态方法,不能有普通方法,普通方法需要用defalut添加默认实现
    • 接口中的变量必须实例化
    • 接口中没有静态代码块、普通变量、普通代码块、构造函数
  • 相关阅读:
    Python内置函数
    101-搭建django工程
    100-开发环境
    Appium
    Maven用途
    Extjs 可重用组件开始写 2014 8 23日
    关于开发方面可重用性的思考
    Extjs 常见错误
    21个jQuery经典特效0积分下载
    设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。
  • 原文地址:https://www.cnblogs.com/fly-piglet/p/8766226.html
Copyright © 2011-2022 走看看