日期:2014-05-20  浏览次数:20617 次

关于调用方法时是否默认调用构造器
单子模式,请问当SingletonPattern.getInstance()时,是否会默认先调用一下构造器private SingletonPattern()?

Java code
public class SingletonPattern {
   private double r;
   private static SingletonPattern sp;
   private SingletonPattern(){
       r = java.lang.Math.random();
   }
   public static SingletonPattern getInstance(){
       if(sp == null){
           sp = new SingletonPattern();
       }
       return sp;
   }
   public double getR(){
       return r;
   }
   public static void main(String[] args) {
       SingletonPattern sp1 = SingletonPattern.getInstance();
       SingletonPattern sp2 = SingletonPattern.getInstance();
       System.out.println(sp1.getR());
       System.out.println(sp2.getR());    
   }
}





------解决方案--------------------
楼主的程序输出结果给不了自己答案吗?
------解决方案--------------------
不会的
------解决方案--------------------
是否会默认先调用一下构造器private SingletonPattern()?
不会
------解决方案--------------------
探讨
引用:
不会的


那要private SingletonPattern(){
      r = java.lang.Math.random();
  }
还有什么用吗?直接定义一次r = java.lang.Math.random();不得了,为何还要把它放在构造器中啊?