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)
    注意标注的程序运行顺序
  • 相关阅读:
    [LeetCode] 90. 子集 II
    [LeetCode] 91. 解码方法
    [LeetCode] 89. 格雷编码
    [LeetCode] 88. 合并两个有序数组
    转:Google论文之三----MapReduce
    转:Google论文之二----Google文件系统(GFS)翻译学习
    转:Zend Framework 2.0 分析
    转:PHP include()和require()方法的区别
    转:cookie和session(二)——php应用
    转:cookie和session(一)——原理
  • 原文地址:https://www.cnblogs.com/macula7/p/1960583.html
Copyright © 2011-2022 走看看