如有不足,多多指导。

static 可以修饰属性,方法,静态代码块

  1. 修饰属性:全类共有的属性,可以通过类名.属性获取

    在创建对象的时候加载

2. 修饰代码块

   static { }

3. 修饰方法

  public static void m(){}



这里主要说下 加载时候的先后顺序

  类加载顺序

    1.父类静态属性/父类静态代码块 (书写的先后顺序)

    2.子类静态属性/子类静态代码块  (书写的先后顺序)

    3.父类实例属性/父类动态代码块   (书写的先后顺序)

     4.父类构造方法

    5.子类实例属性/子类动态代码块   (书写的先后顺序)

    6.子类构造方法

  我们通过代码来进行验证

class par{

static int pi = 4;

static {

System.out.println("父类静态代码块"+pi);

}

{

System.out.println("父类动态代码块"+pi);

}

int pj = 5;

public par(){}

}


class son extends par{

int sj = 7;

{

System.out.println("子类动态代码块"+sj);

}

static int si = 6;

static {

System.out.println("子类静态代码块"+si);

}

}

结果: 

    父类静态代码块4

    子类静态代码块6

    父类动态代码块4

    子类动态代码块7

static 修饰用法_第1张图片