有关java静态变量执行顺序的程序
classCup{Cup(intmarker){System.out.println("Cup("+marker+")");}voidf(intmarker){Syste...
class Cup { Cup(int marker) { System.out.println("Cup(" + marker + ")"); } void f(int marker) { System.out.println("f(" + marker + ")"); }}class Cups { static Cup c1; static Cup c2; static { c1 = new Cup(1); c2 = new Cup(2); } Cups(int i) { System.out.println("Cups(" + i + ")"); }}public class Test { public static void main(String[] args) { Cups x = new Cups(2); // 语句(1) System.out.println("Inside main()"); } Cups y = new Cups(3); // 语句(2)} // /:~这段代码执行结果为:Cup(1)Cup(2)Cups(2)Inside main()问题一:请问为什么语句(2)的创建对象y没有执行Cups的构造函数呢?我认为执行结果应该是Cup(1)Cup(2)Cups(2)Cups(3)Inside main()问题二:为什么我在语句(2)前面加上static,执行结果就是Cup(1)Cup(2)Cups(2)Cups(3)Inside main()呢?
展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询