学完了java中static方法块的作用及何时执行!现在想知道member方法块的作用?及在什么位置定义?功能是什么?哪位好心人知道给我讲讲贝,有例子说明更好?谢谢

解决方案 »

  1.   

    static比成员方法和非static的代码块都先执行。static代码块是在类加载时就执行。而member方法是要有类的对象后才能执行。static和非static的代码块定义位置与成员属性的位置一样。执行顺序是:先父类,后子类:在类加载时,执行static代码块,在类加载完后,调用顺序依次是:为属性申请空间(父-子),为属性赋默认值(父-子),为属性赋初值-非static代码块-构造方法-(父子类)
    如下代码在调用new B()时执行顺序:加载父子类,执行static代码块,依次输出:1-5,然后为s赋初值null,然后  为a赋初值 null,然后为父类s赋默认值"2",执行非static代码块打出3,执行构造 ,打印出4,然后为子类a赋默认值6,然后  执行非static 代码块打印出7,执行构造,打出8class A {
    static {
    System.out.println("1");
    }
    private String s = "2";
    {
    System.out.println("3");
    } A() {
    System.out.println("4");
    }
    }class B extends A {
    static {
    System.out.println("5");
    }
    private String a = "6";
    {
    System.out.println("7");
    } B() {
    System.out.println("8");
    }
    }