代码块

静态代码块

  一个类被加载时会被调用一次,常用在需要做一些全局初始化的工作。

  static {System.out.println("I am a static code block!"); }类被加载时会立马执行

实例代码块

  每次创建实例,都会被调用 一次(被编译在构造器内,且顺序在构造器内的前面)

  例:{ System.out.println("I am a instance code block!");}在new本类时执行一次

 

执行顺序

public class Father {

  public Father(){ System.out.println("这是父类的构造器!"); }

   { System.out.println("这是父类的实例代码快!"); }

  static { System.out.println("这是父类的静态代码快!"); }

}

public class Son extends Father {

  public Son(){ System.out.println("这是子类的构造器!"); }

  { System.out.println("这是子类的实例代码快!");}

  static { System.out.println("这是子类的静态代码快!"); }

  public static void main(String[] args) {

  new Son();

  }

}

结果:

1. 这是父类的静态代码块!

2. 这是子类的静态代码块!(1,2是先加载)

3. 这是父类的实例代码块!

4. 这是父类的构造器!

5. 这是子类的实例代码块!

6. 这是子类的构造器!

  

posted @ 2021-12-26 10:25  CcYcHu  阅读(40)  评论(0)    收藏  举报