JAVA(静态代码块,构造代码块)
一、静态代码块
随着类的加载而执行,而且只执行一次
作用:用于给类进行初始化
例如:
class StaticCode{
static{ //静态代码块
System.out.println("静态代码块运行");
}
static void show(){
System.out.println("run");
}
}
class StaticCodeDemo{
public static void main(String[ ] arge){
StaticCode.show(); // 调用类方法后,类在初始化的时候会直接执行静态代码块的内容
StaticCode.show(); //第二次调用时会发现,静态代码块只执行了一次,即静态代码块只在类初始化时执行一次
}
}
运行结果:

二、构造代码块
作用:可以给所有对象进行初始化 (类里的构造函数给对应的对象进行针对的初始化)
例如:
public class Test1 { private String name ; private int age; static { System.out.println("静态代码块运行"); } private String Code; { System.out.println("代码块运行"); } Test1(String name){ //构造函数 this.name = name; } Test1(String name,int age){ //构造函数 this(name); this.age = age; } public static void main(String[] args) { Test1 T1 = new Test1("狗",5); Test1 T2 = new Test1("猫",6); } }
运行结果:

注意:静态代码块,构造代码块,构造函数的执行顺序:
静态代码块最先执行,它随着类的创建执行,对类进行初始化。
构造代码块在有对象的情况下执行,对创建的对象进行初始化。
构造函数在有对象的时候最后执行,对所对应的对象进行初始化。
public class Test1 {
private String name ;
private int age;
static {
System.out.println("静态代码块运行");
}
private String Code; {
System.out.println("代码块运行");
}
Test1(String name){ //构造函数
this.name = name;
}
Test1(String name,int age){ //构造函数
this(name);
this.age = age;
}
public static void main(String[] args) {
Test1 T1 = new Test1("狗",5);
Test1 T2 = new Test1("猫",6);
}
}

浙公网安备 33010602011771号