一、代码块
(一)定义:代码块是在程序之中使用“{}”定义起来的一段程序。
(二)分类:根据声明位置和声明关键字的不同,代码块分为以下4种。
1. 普通代码块
2. 构造块
3. 静态块
4. 同步块
二、普通代码块
(一)普通代码块:定义在方法中的代码块。
(二)局部变量:定义在方法、构造器或代码块内部的变量,其作用域仅限于定义的方法、构造器或代码块中。
(三)全局变量:定义在类中、方法外部的变量,其作用域在整个类中都有效,也称成员变量。
eg1:
运行结果:
由于第一个变量q定义在了if语句中,所以相对于第二个变量q,
第一个变量q相当于是一个局部变量,并且两个变量不会因为重名而出现编译错误。
eg2:
运行结果:
以上程序中使用了一个“{}”定义了一个普通代码块,将一个变量q定义在“{}”中,不会与全局的q变量互相影响,使用普通代码块能够限定变量的作用范围,使其不会影响到其他的部分。
三、构造块
(一)构造块:定义在类中的代码块。
eg3:
运行结果:
可以发现,构造优先于构造方法执行,
而且每当有一个新的实例化对象产生时,就会重复执行构造块的程序。
三、静态块
(一)静态块:也是定义在类中的,如果一个构造块上使用了 static 关键字进行定义的话,那么就表示静态块。静态块需考虑以下两种情况。
1. 在非主类中定义的构造块
eg4:
执行结果:
可以看出,静态块优先于构造块执行,而且不管有多少个实例化对象产生,
静态块只执行一次,主要作用是为类中的 static 属性初始化。
2. 在主类中定义的构造块
eg5:
运行结果:
可以发现,在主类中定义的静态块优先于主方法执行。