构造代码块和局部代码块
构造代码块
在类的内部,方法外部的代码块。
通常用于抽取构造方法中的共性代码。
每次调用构造方法前都会调用构造代码块
先于构造方法加载
public class Block {
public static void main(String[] args) {
//创建Personl对象
Personl a = new Personl();
}
}
class Personl{
// 无参构造方法
public Personl() {
System.out.println(2);
}
// 构造代码块
{
System.out.println(1);
}
}
运行结果为
1
2
因为构造代码块会在每次执行构造方法时执行且会先于构造方法执行。
局部代码块
在方法里面的代码块
通常用于控制变量的作用范围,出了括号就失效
class Block {
public static void main(String[] args) {
Person z = new Person();
z.show();
}
}
class Person{
public Zoo() { } //构造方法
public void show() {
System.out.println(2);
//局部代码块
{
System.out.println(1);
}
}
}
运行结果为
2
1
因为局部代码块并没有特定的执行顺序,与构造方法块不同。