Java类初始化顺序
2022/2/11 22:42:38
本文主要是介绍Java类初始化顺序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 初始化顺序
- 总结:
- 普通类:
- 包含继承关系的父子类:
- 抽象的实现子类: 接口 - 抽象类 - 实现子类
- 接口注意:
一个类中包含如下几类东西,他们前后是有顺序关系的
- 静态属性:static 开头定义的属性
- 静态方法块: static {} 圈起来的方法块
- 普通属性: 未带static定义的属性
- 普通方法块: {} 圈起来的方法块
- 构造函数: 类名相同的方法
- 方法: 普通方法
初始化顺序
public class LifeCycle { // 1.静态属性 private static String staticField = getStaticField(); // 2.静态方法块 static { System.out.println(staticField); System.out.println("静态方法块初始化"); System.out.println("Static Patch Initial"); } // 3.普通属性 private String field = getField(); // 4.普通方法块 { System.out.println(field); System.out.println("普通方法块初始化"); System.out.println("Field Patch Initial"); } // 5.构造函数 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添加默认实现
- 接口中的变量必须实例化
- 接口中没有静态代码块、普通变量、普通代码块、构造函数
这篇关于Java类初始化顺序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南
- 2024-09-26Springboot微服务资料入门教程