初学JAVA,语句块有普通语句块和static语句块。
一直不明白构造函数、语句块、static语句块的执行顺序,搜了一下,执行了一遍就明白了。
public class Test1 {
public static int X=100;
public final static int Y=200;
public Test1(){
System.out.println("Test构造函数执行");
}
static{
System.out.println("static语句块执行");
}
{
System.out.println("not static 语句块执行");
}
public static void display(){
System.out.println("静态方法被执行");
}
public void display_1(){
System.out.println("实例方法被执行");
}
public static void main(String [] args){
Test1.display();//相当于直接写display
System.out.println("x=" + Test1.X + " y=" + Test1.Y );
Test1.display();
Test1 t1 = new Test1();
Test1 t2 = new Test1();
//t1.Y=10;//final修饰的数据不能修改
t2.X=300;//相当于直接给X赋值,t1\t2的X的值都改变
System.out.println("X=" + t1.X + " Y=" + t2.Y);
t1.display();//相当于display()
t1.display_1();
}
}
static语句块执行
静态方法被执行
x=100 y=200
静态方法被执行
not static 语句块执行
Test构造函数执行
not static 语句块执行
Test构造函数执行
X=300 Y=200
静态方法被执行
实例方法被执行