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添加默认实现
    • 接口中的变量必须实例化
    • 接口中没有静态代码块、普通变量、普通代码块、构造函数
  • 相关阅读:
    第七章 内部类与异常类
    2019 Multi-University Training Contest 1
    2019 Multi-University Training Contest 4
    支配树总结
    2019牛客多校第四场题解
    2019牛客多校第三场题解
    莫比乌斯函数总结
    2019牛客多校训练第二场题解
    2019牛客多校训练第一场题解
    洛谷P3069 [USACO13JAN]牛的阵容Cow Lineup(尺取法)
  • 原文地址:https://www.cnblogs.com/fly-piglet/p/8766226.html
Copyright © 2011-2022 走看看