首先,示例来自Bruce Eckel的《On Java》:
// housekeeping/ExplicitStatic.java // (c)2021 MindView LLC: see Copyright.txt // We make no guarantees that this code is fit for any purpose. // Visit http://OnJava8.com for more book information. // Explicit static initialization with "static" clause 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; Cups() { System.out.println("Cups()"); } //add new static field static Cup cup3 = new Cup(3); static { cup1 = new Cup(1); cup2 = new Cup(2); } } public class ExplicitStatic { public static void main(String[] args) { System.out.println("Inside main()"); Cups.cup1.f(99); // [1] } static Cups cups1 = new Cups(); // [2] static Cups cups2 = new Cups(); // [2] } /* Output: // Inside main() // Cup(1) // Cup(2) // f(99) Cup(3) Cup(1) Cup(2) Cups() Cups() Inside main() f(99) */
说明:按照实例化的语句顺序进行实例化,不是按照定义的顺序。另外,实例化顺序为:先静态->再动态->再构造函数,这样顺序进行。
标签:Java,Cup,静态,System,字段,static,marker,new,Cups From: https://www.cnblogs.com/jizhong/p/16868496.html