类的成员之四:代码块
- 在Java类中,除了字段(属性)和方法之外,还可以包含代码块。
- 代码块是一组语句,可以在类中定义,用于初始化实例变量或执行特定的操作。
- 在Java中,有两种类型的代码块:静态代码块和实例代码块。
- 静态代码块按照在类中出现的顺序执行,且仅执行一次(在类加载时)。
- 实例代码块在每次创建对象时执行,执行顺序与它们在类中出现的顺序一致,优先于构造方法执行。
- 可以在有多构造器时抽出相同代码,来使得代码更精简
静态代码块:
- 静态代码块使用关键字 static 来声明,它在类加载时执行(类只加载一次),且只执行一次。静态代码块用于初始化静态变量或执行静态操作。静态代码块位于类中的任何位置,但在类加载时按照在类中出现的顺序执行。只能调用静态的结构(若调用非静态可能会因为非静态结构消亡而无法调用)
- 主要用于对静态变量的赋值,防止静态变量被修改
public class MyClass {
static {
// 静态代码块
System.out.println("Static block is executed.");
}
}
实例代码块:
- 实例代码块没有使用关键字 static,它在创建对象时执行,每次创建对象时都会执行一次。实例代码块用于初始化实例变量或执行实例操作。实例代码块位于类中,但不在任何方法内部。可以调用静态和非静态的结构
public class MyClass {
{
// 实例代码块
System.out.println("Instance block is executed.");
}
}
构造器和代码块区别
- 构造器用于初始化对象,而代码块用于执行特定的代码逻辑。
- 构造器在创建对象时被调用,代码块在类加载或对象创建时执行。
- 构造器没有返回类型,而代码块也不需要返回类型。
- 构造器的名称与类名相同,而代码块没有名称,只是一段被大括号包围的代码。