• 显式初始化


    一个静态域或者一个静态块,只执行一次初始化:当首次生成这个类的一个对象时,或者首次访问属于这个类的静态数据成员时(即便没有生成这个类的对象)。

    例子:

    class Cup{
        Cup(int marker){
            System.out.println("Cup( " + marker + " )");
        }
        
        void f(int marker){
            System.out.println("f( " + marker +" )");
        }
    }
    
    class Cups{
        static Cup cup1;
        static Cup cup2;
        static{
            cup1 = new Cup(1);
            cup2 = new Cup(2);
        }
        Cups(){
            System.out.println("Cups()");
        }
    }
    
    public class ExplicitStatic {
        public static void main(String[] args) {
            System.out.println("Inside main()");
            Cups.cup1.f(99);
        }
        static Cups cups1 = new Cups();
        static Cups cups2 = new Cups();
    }
    /*output:
    Cup( 1 )
    Cup( 2 )
    Cups()
    Cups()
    Inside main()
    f( 99 )
    */

    分析:

      无论创建了多少个Cups对象,只对Cups类中的静态域和静态块执行一次初始化。

  • 相关阅读:
    第八周上机
    第七周作业
    第七周上机练习
    第六周作业
    第六次上机
    第五次上机
    第四周作业
    第四周上机练习
    第三次作业
    第二次作业
  • 原文地址:https://www.cnblogs.com/aristole/p/8003889.html
Copyright © 2020-2023  润新知