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)
    注意标注的程序运行顺序
  • 相关阅读:
    Visual Studio自带的的Developer Command Prompt对话框
    利用VS(Visual Studio)自带的工具查看DLL文件的信息
    谷歌面试官反馈级别
    Inno Setup中多语言时,使用占位符填充
    SQL*Plus命令
    Oracle 所有字典
    彻底完全卸载 SQL Server 2005 的图文教程
    win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
    创建表空间、新增用户、给用户赋予DBA权限 、删除用户下的上有数据表
    ORA-01012: not logged on
  • 原文地址:https://www.cnblogs.com/macula7/p/1960583.html
Copyright © 2011-2022 走看看