• java静态数据初始化


    java中的静态数据初始化是比较复杂的,看下面的演示程序:
    class Bowl {

    Bowl(int marker) {
    System.out.println("Bowl(" + marker + ")");
    }

    void f(int marker) {
    System.out.println("f(" + marker + ")");
    }
    }

    class Table {
    static Bowl b1 = new Bowl(1);                        //1
    static Bowl b2 = new Bowl(2);                        //2
    Table() {
    System.out.println("Table()");                    //3
    b2.f(1);                                        //4
    }

    void f2(int marker) {
    System.out.println("f2(" + marker + ")");
    }


    }

    class Cupboard {
    Bowl b3 = new Bowl(3);                                //7            //11        //15
    static Bowl b4 = new Bowl(4);                        //5
    static Bowl b5 = new Bowl(5);                        //6

    Cupboard() {
    System.out.println("Cupboard()");                //8            //12        //16
    b4.f(2);                                        //9            //13        //17
    }

    void f3(int marker) {
    System.out.println("f3(" + marker + ")");
    }


    }

    public class StaticInitialization {
    static Table t2 = new Table();
    static Cupboard t3 = new Cupboard();
    public static void main(String[] args) {
    System.out.println("Creating new Cupboard() in main");    //10
    new Cupboard();                           
    System.out.println("Creating new Cupboard() in main");    //14
    new Cupboard();
    t2.f2(1);                                        //18
    t3.f3(1);                                        //19
    }


    }
    输出结果为:
    Bowl(1)
    Bowl(2)
    Table()
    f(1)
    Bowl(4)
    Bowl(5)
    Bowl(3)
    Cupboard()
    f(2)
    Creating new Cupboard() in main
    Bowl(3)
    Cupboard()
    f(2)
    Creating new Cupboard() in main
    Bowl(3)
    Cupboard()
    f(2)
    f2(1)
    f3(1)
    注意标注的程序运行顺序
  • 相关阅读:
    R 读取xls/xlsx文件
    网页免费转换为可编辑的PDF
    Python: NumPy, Pandas学习资料
    鱼油资料
    Activity的四种启动模式和onNewIntent()
    Android Service、IntentService,Service和组件间通信
    Activity生命周期
    Node.js学习起步
    Android 技能图谱学习路线
    Blog
  • 原文地址:https://www.cnblogs.com/macula7/p/1960583.html
Copyright © 2020-2023  润新知