一、代码块概念以及分类
使用{}定义的一段代码称为代码块。根据代码块定义的位置以及关键字,可以分为四种:
- 普通代码块
- 构造代码块
- 静态块
- 同步代码块
二、普通代码块
普通代码块:在方法或语句中出现的{}就称为普通代码块。(这种用法比较少见)
public class Test {
public static void main (String[] args) {
int age = 18;
System.out.println ("这是普通代码块。age:"+age) ;
int age = 30;
System.out.println("age:"+age);
}
}
在上述代码中,每一对“}”括起来的代码都称为一个代码块。Test 是一个大的代码块,在Test代码块中包含了main( )方法代码块,在main( )方法中又定义了一个局部代码块,局部代码块对main( )方法进行了“分隔”,起到了限定作用域的作用。局部代码块中定义了变量age,main( )方法代码块中也定义了变量age,但由于两个变量处在不同的代码块,作用域不同,因此并不相互影响。
三、构造构造块:定义在类中的代码块(不加修饰符)。也叫:实类代码块。
构造代码块:在类中使用static修饰,并使用"{}"括起来的代码片段,用于静态变量的初始化或对象创建前的环境初始化. 是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块,只要对象一建立,就会调用这个代码块
public class HelloB extends HelloA {
public HelloB() {
}
{
System.out.println("I'm B class");
}
static {
System.out.println("static B");
}
public static void main(String[] args) {
new HelloB();
}
}
class HelloA {
public HelloA() {
}
{
System.out.println("I'm A class");
}
static {
System.out.println("static A");
}
}
结果如下:
static A
static B
I'm A class
I'm B class