java变量的初始化

public class Init {

    private int age;//非静态初始化语句<3>

    private static String name; //静态初始化语句,先初始化静态 <1.1>

   

    /**静态初始化语句和静态初始化模块都是静态(同等级),谁在前面先初始化谁*/

   

    {/**动态初始化模块(非静态初始化模块)<4>*/

       double width;

       float price;

       System.out.println("父类非静态");

    }

    static{/**静态初始化模块<2>*/

       int id;

       String pwd;  

       name = "admin";//在初始化name时并进行赋值,不用等静态初始化模块<1.2>

       System.out.println("父类静态");

    }

    //private static String name;/**如果把语句放在模块下面,也是和上面顺序一样<1.1>*/

    /**构造方法要等到所有的成员变量都初始化完后才执行*/

    public Init(){

       char gender = 'c';//<5> 

       System.out.println("父类构造");

    }

   

   

    public static void main(String[] args) {

       //new Init();

       new Child();

    }

   

   

   

}

/**

 * 子类继承父类,子类和父类都有静态和非静态和构造

 * 1、初始化父类静态

 * 2、初始化子类静态

 * 3、初始化父类非静态

 * 4、初始化父类构造

 * 5、初始化子类非静态

 * 6、初始化子类构造

 *

 * */

class Child extends Init{

    {

       System.out.println("子类非静态");  

    }

    static{

       System.out.println("子类静态");

    }

    public Child(){

       System.out.println("子类构造");

    }

}

  

原文地址:https://www.cnblogs.com/wwzyy/p/4775465.html