目录
代码块的作用
1. 用来初始化类、对象
2. 代码块如果有修饰的话,只能使用 static
非静态代码块
1. 内部可以有输出的语句
2. 随着对象的创建而执行
3. 每创建一个对象,就执行一次非静态代码块
4. 作用:可以在创建对象时,对对象的属性等进行初始化
5. 如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
6. 非静态代码块内可以调用静态的属性、方法或非静态的属性、方法
静态代码块
1. 内部可以有输出语句
2. 随着类的加载而执行,而且只执行一次
3. 作用:初始化类的信息
4. 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
5. 静态代码块的执行要优先于非静态代码块的执行(生命周期)
6. 静态代码块内只能调用静态的属性、方法,不能调用非静态的结构
代码举例
public class SingletonTest {
public static void main(String[] args) {
String t = Order.test;
// Order o = new Order();
}
}
class Order{
String name;
int age;
static String test;
// 构造器
public Order() {
}
public Order(String name,int age) {
this.name = name;
this.age = age;
}
// static代码块
static {
System.out.println("static block");
test = "测试模块";
}
// 非static代码块
{
System.out.println("block");
}
// 方法
public void eat() {
System.out.println("eat()");
}
}
>>> static block