当前位置: 代码迷 >> J2SE >> java 静态初始化疑点
  详细解决方案

java 静态初始化疑点

热度:44   发布时间:2016-04-24 12:20:13.0
java 静态初始化疑问
Java code
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 JingTai {        public static void main(String[] args){        System.out.println("Inside main()");        Cups.cup1.f(99);    }        }


输出结果为

Inside main()
cup(1)
cup(2)
f(99)



为什么没输出Cups()

谢谢



------解决方案--------------------
在你的Main方法中
System.out.println("Inside main()");
Cups.cup1.f(99); 这两句代码第一句直接输出Inside main(),第二句是调用f()方法,你要加一个new Cups()调用Cups构造方法才会显示你想要的Cups()。
  相关解决方案