构造代码块
构造代码块:
{}代表构造代码块,在构造方法前执行
每次调用构造方法,构造代码块每次都会执行
作用
可以将构造方法中公用的部分抽取到构造代码块中
顺序
代码块 > 构造方法
public class Test01 {
{
System.out.println("我是构造代码块最先执行");
}
public Test01() {
System.out.println("调用无参构造方法");
}
public Test01(int age){
System.out.println("调用有参构造方法");
}
public static void main(String[] args) {
Test01 test01 = new Test01();
int age = 9;
Test01 test011 = new Test01(age);
}
}
静态代码块
静态代码块:
在类中使用static修饰,并使用"{}"括起来的代码片段,用于静态变量的初始化或对象创建前的环境初始化.
作用
在类加载时,要完成一些初始化工作,而且只需要执行一次,就可以把代码放到静态代码块中。
只会执行一次
静态代码块在类加载的时候就执行
跟创建对象没有关系,通过调用对象无法调用
触发类的加载的情况:1.首次创建对象 2.调用类的方法 3.在类中运行main方法
顺序
静态代码块 > 构造代码块 > 构造方法
public class Test02 {
//只会执行一次
//静态代码块在类加载的时候就执行
//跟创建对象没有关系,通过调用对象无法调用
//顺序: 静态代码块 > 构造代码块 > 构造方法
static {
System.out.println("我是静态代码块");
}
public Test02(){
System.out.println("我是无参构造方法");
}
public Test02(int age){
System.out.println("我是有参构造方法");
}
public static void main(String[] args) {
System.out.println("1");
Test02 test02 = new Test02();
int age = 9;
Test02 test03 = new Test02(age);
}
}
最后
如果你对本文有疑问,你可以在文章下方对我留言,敬请指正,对于每个留言我都会认真查看。