目录
代码块基本介绍
代码化块又称为初始化块,属于类中的成员,类似于方法,将逻辑语句封装在方法体中,通过{ }包围起来。但其和方法不同,没有方法名、返回、参数,只有方法体,且不用通过对象或类显式调用,而是在加载类时或创建对象时被隐式调用。
代码块基本语法
【修饰符】{
代码
};
注意:
1. 修饰符可写可不写,写的话只能写static。
2. 有static的叫静态代码块,没有的叫普通代码块。
3. 逻辑语句可以为任何逻辑语句。(输入、输出、循环、方法调用、判断等)
4. { }最后的;可写可不写。
代码块注意细节
1. 代码块分类详解
static代码块也叫静态代码块,作用是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,则每创建一个对象就执行一次。
2. 类什么时候被加载
1)创建对象实例时(new)。
2)创建子类对象实例,父类也会被加载。
3)使用类的静态成员时(静态属性,静态方法)。
3. 普通代码块的执行与否
普通的代码块,在创建对象实例时,会被隐式的调用,被创建一次就会调用一次。
如果只是使用类的静态成员时,普通代码并不会执行。
4. 创建一个对象时,在一个类中的调用顺序
1)先调用静态代码块和静态属性初始化,它们两个优先级一样,如果代码中同时存在,则按照它们的定义顺序来输出。
2)再调用普通的代码块和普通属性的初始化,它们两个优先级一样,如果代码中同时存在,则也按照它们的定义顺序来输出。
3)最后才调用构造器。
5. 构造器隐含的秘密
构造器的最前面其实隐含了super()和调用普通代码块。有super()就代表如果有父类就会先调用父类的东西,然后再调用本类的普通代码块。
6. 创建一个子类对象时(继承关系),它们的语句调用顺序
7. 两类代码块的调用条件
静态代码块只能直接调用静态成员(静态属性和静态方法),普通代码块可以调用任意成员。