/*
* 块block: {}->作用域
* {}定义在方法中->局部代码块|普通语句块 执行时机:调用方法
* {}定义在类中方法外->构造块 执行时机:new
* static{}定义在类中方法外->静态块 执行时机:在类第一次加载以后执行一次
* 同步块
*
* 构造块先于构造器的代码执行,如果存在多个构造块,从上到下以此执行
* 静态块先于主方法执行,如果存在多个静态块,从上到下依次执行
*
* static->main->构造块->构造器
*/
public class BlockDemo01 {
//如果存在静态块,静态变量,从上到下依次执行
static int a=10;
static{
System.out.println(a);
}
int b=5;
static{
System.out.println("我是静态块1"+a);
//BlockDemo01 bd=new BlockDemo01();
//System.out.println(bd.b);
}
static{
System.out.println("我是静态块2");
}
public BlockDemo01() {
System.out.println("我是构造器");
}
//构造块
{
System.out.println("我是构造块1");
System.out.println(a);
System.out.println(b);
}
{
System.out.println("我是构造块2");
}
{
System.out.println("我是构造块3");
}
public static void main(String[] args) {
System.out.println("main");
int a=15; //作用域在变量声明开始,到离我最近的,包裹你的{}的}为止
//同一个作用域之内变量不能重名,使用就近原则使用
//局部代码块
{
int b=5; //作用域就在代码块中
System.out.println(a);
}
System.out.println("-------"+BlockDemo01.a);
BlockDemo01 bd=new BlockDemo01();
System.out.println(bd.a);
//System.out.println(b); 无法使用
}
}
快速认识java的block块的使用
最新推荐文章于 2023-04-07 23:03:37 发布