Java基础(1)-类的构造顺序

初始化对象

类在初始化过程中一般会以下几个部分进行初始化

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

初始化顺序

静态变量 > 静态方法块 > 普通变量 > 普通方法块 > 构造函数

Q:为什么构造函数是最后一个?

A:构造函数是最后一个,才能有机会去修改属性的值,如果构造函数优先级最高,那么普通变量进行初始化会把构造函数的内容覆盖了。

测试代码

LifeCycle函数

package lifeCycle;

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;
    }
}

Test函数

package lifeCycle;

public class Test {
	public static void main(String[] args) {
		new LifeCycle();
	}
}

测试结果

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值