提示:Java类的五大成员:属性、方法、构造器、代码块、内部类
文章目录
一、java代码块
在Java中,代码块(Code Block)是指由一对大括号 {} 包围的一系列语句。它们在程序中扮演着不同的角色,根据其位置和功能,可以分为以下几类:
二、java代码块的具体分类
1.构造代码块(Instance Initialization Block, IIB):
构造代码块位于类的成员变量与成员方法之间,但不属于任何方法。它会在每次创建类的实例(即对象)时执行,并且在构造方法调用之前执行。构造代码块用于初始化那些需要在构造方法之前执行的代码,或者在多个构造方法中共享的初始化逻辑。
代码如下(示例):
public class Example {
int value;
// 构造代码块
{
value = 42; // 设置默认值
System.out.println("Instance initialization block executed.");
}
// 构造方法
public Example() {
System.out.println("Constructor called.");
}
}
2.静态代码块(Static Initialization Block, SIB):
静态代码块与构造代码块类似,但使用了 static 关键字修饰。它在类加载时执行一次,且在类的任何实例创建之前。静态代码块用于初始化那些需要在类首次加载时执行的静态资源,或者为类的静态变量设置默认值。
代码如下(示例):
public class Example {
static int staticValue;
// 静态代码块
static {
staticValue = ¼; // 设置默认值
System.out.println("Static initialization block executed.");
}
// 构造方法
public Example() {
System.out.println("Constructor called.");
}
}
3.方法内部的代码块:
在方法体内部,可以使用代码块来组织和分隔逻辑,或者创建新的作用域。这些代码块仅在相应方法被调用时执行。
代码如下(示例):
public void someMethod() {
// 方法内的代码块
{
int localVariable = 10;
System.out.println("Inside method code block: " + localVariable);
}
// ... 其他方法逻辑
}
4.循环、条件语句等控制结构中的代码块:
在for, while, do-while, if, else, switch, try-catch-finally等控制结构中,代码块用于封装循环体或条件分支内的语句。这些代码块的执行依赖于相应的控制条件。
for (int i = 0; i < 5; i++) {
// 循环代码块
{
System.out.println("Iteration: " + i);
}
}
总结
静态代码块与类的生命周期紧密相关,只在类加载时执行一次;而构造代码块与对象的生命周期相关,每次创建新对象时都会执行。这两类代码块分别服务于类级别的初始化和对象级别的初始化。