zoukankan      html  css  js  c++  java
  • 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)
    注意标注的程序运行顺序
  • 相关阅读:
    观察者模式(学习笔记17)
    web前端安全编码(模版篇)
    如何获取元素最终使用的css值
    Range在各浏览器下的问题和常见处理办法
    总结cookie的一些问题
    js 设计模式单例模式
    web端不能登录问题汇总
    多域名登录方案思考
    深入分析js中的constructor 和prototype
    由一次代码优化想到的Js 数据类型
  • 原文地址:https://www.cnblogs.com/macula7/p/1960743.html
Copyright © 2011-2022 走看看