java 初始化块笔记

初始化块

初始化块是java类里可出现的地四种(属性、方法、构造器)成员。一个类里可以有多个初始化块,多个初始化块之间有顺序:在前面的初始化块先执行,后边的初始化块后执行。

如果初始化块用static修饰,就是会成为静态初始化块。初始化块中可以保护任何的执行性语句,包括定义变量,条件分支语句、循环语句等。

初始化块没有名字,不能被调用,它在对象创建时隐式执行。初始化快先于构造器先执行。初始化块和类中的属性声明赋默认值都可以认为是初始化代码,他们的执行顺序与他们在程序中的排列属性相同。例如:

public class initTest{
    //先执行,因为在程序的排列属性先于a = 9
    {
        a=6;
    }
    //在执行
    int a = 9;

    public initTest(){
        int = 12; //其次执行
    }
}

初始化块与构造器

从某种程度上来看,初始化块是构造器的一种补充。与构造器不同的是,它是一段固定的代码,不接受任何参数。如果类中的多个构造器中初始化代码相同,而且不用接受参数,可以提取到初始化块中,这样代码看起来更简洁。

与构造器类似的是,在创建一个java对象时,会先执行父类的初始化块,父类的构造器,然后是本类的初始化块,本类的构造器。

静态初始化块

如果使用static修饰的初始化块就是静态初始化块。它是在类加载时执行的,不是在对象创建时执行的。静态初始化块中不能访问非静态成员,这与静态方法中不能调用非静态方法和成员是一致的。
静态初始化块和静态属性的初始化都是初始化代码,它们的初始化顺序与他们在程序中排列的属性相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值