Java 中的代码块是指用 {}
括起来的一段代码。根据它们的位置和用途,代码块可以分为以下几类:
- 实例初始化块
- 静态初始化块
- 构造函数块
- 局部代码块
1. 实例初始化块
实例初始化块是在每次创建类的对象时执行的代码块。它在构造函数之前执行。
class Example {
// 实例初始化块
{
System.out.println("实例初始化块执行");
}
// 构造函数
Example() {
System.out.println("构造函数执行");
}
}
public class Main {
public static void main(String[] args) {
Example example = new Example(); // 输出:实例初始化块执行
// 构造函数执行
}
}
2. 静态初始化块
静态初始化块是在类加载时执行的代码块,只执行一次,用于初始化静态变量。
class Example {
// 静态变量
static int count;
// 静态初始化块
static {
count = 10;
System.out.println("静态初始化块执行");
}
}
public class Main {
public static void main(String[] args) {
Example example = new Example(); // 输出:静态初始化块执行
}
}
3. 构造函数块
构造函数块是一个在构造函数内部定义的代码块。每次创建对象时,构造函数块都会被调用。
class Example {
// 构造函数
Example() {
System.out.println("构造函数开始");
{
System.out.println("构造函数块执行");
}
System.out.println("构造函数结束");
}
}
public class Main {
public static void main(String[] args) {
Example example = new Example(); // 输出:构造函数开始
// 构造函数块执行
// 构造函数结束
}
}
4. 局部代码块
局部代码块是在方法内部定义的代码块,用于限制变量的作用域和提高代码的可读性。
public class Main {
public static void main(String[] args) {
int x = 10;
System.out.println("x 的值: " + x);
// 局部代码块
{
int y = 20;
System.out.println("y 的值: " + y);
}
// y 在这里是不可访问的
// System.out.println(y); // 编译错误
}
}