zoukankan      html  css  js  c++  java
  • Java笔记 #04# 类的初始化顺序补充

    参考 java中的类的初始化顺序详解

    package org.sample;
    
    class Bread {
        Bread() { System.out.println("Bread()"); }
    }
    class Cheese {
        Cheese() { System.out.println("Cheese()"); }
    }
    class Lettuce {
        Lettuce() { System.out.println("Lettuce()"); }
    }
    
    public class TestOrder {
    
        static {
            System.out.println("static block - 1 has been executed.");
        }
    
        {
            System.out.println("non-static - 1 block has been executed.");
        }
    
        private static final Bread bread = new Bread();
        private static final Cheese cheese = new Cheese();
        static {
            System.out.println("static block - 2 has been executed.");
        }
        private static final Lettuce lettuce = new Lettuce();
    
        private final Bread bread1 = new Bread();
        {
            System.out.println("non-static - 2 block has been executed.");
        }
        private final Cheese cheese1 = new Cheese();
        private final Lettuce lettuce1 = new Lettuce();
    
        public static void run() {
            System.out.println("run static method.");
        }
    
        public TestOrder() {
            System.out.println("create object.");
        }
    
        public static void main(String[] args) {
            TestOrder.run();
            new TestOrder();
        }
    }
    
    /*
    output=
    static block - 1 has been executed.
    Bread()
    Cheese()
    static block - 2 has been executed.
    Lettuce()
    run static method.
    non-static - 1 block has been executed.
    Bread()
    non-static - 2 block has been executed.
    Cheese()
    Lettuce()
    create object.
     */

    之所以补充上面的代码,主要是为了强调:【实例域以及初始化块】的执行也是依赖于代码书写顺序的(自上而下),而并非随机执行或者按照某种优先顺序。不过,一些特殊情况可能需要另当别论。



  • 相关阅读:
    矩阵乘法(二):利用矩阵快速幂运算完成递推
    更改codeblock编译后程序的图标
    如何在VS2008下使用FLTK
    Python type() 函数
    Python range() 函数用法
    Python len()方法
    Python filter() 函数
    Python bool() 函数
    数据类型
    JAVA标识符
  • 原文地址:https://www.cnblogs.com/xkxf/p/9372483.html
Copyright © 2011-2022 走看看