2014-06-06 103 views
-1

我从java开始,所以如果这听起来很蠢,请耐心等待。这是否会陷入无限循环?

我想下面的代码:

First.java

class First { 
    public static void main(String[] args) { 
     First f = new First(); 
     f.print(); 
    } 

    private void print() { 
     System.out.println("Hello, World!"); 
    } 
} 

main功能,我重新实例同一类,因为我需要调用从非静态方法在静态主要方法内。

虽然这个工程,我想知道这是一个好办法吗?并创建了多少个f实例。

我如何确保f将是singleton

感谢

+1

Downvoting它是好的,但至少指出我的错误,所以我知道我在做什么错 –

+0

这将为运行的程序工作,但没有相关的Singleton设计模式。 –

+2

这将工作正常,创建一个f的实例。 – SpringLearner

回答

4

关于第一个问题:类First只有一个实例被创建。

关于第二个问题: 单例模式涉及使用私有构造函数和工厂方法。如果不使用getInstance工厂方法,则无法创建First的新实例,并且所有对getInstance的调用都将返回相同的实例。

class First { 

    private static First instance = null; 
    private First() {} 

    public static First getInstance() { 
     if (instance == null) { 
      instance = new First(); 
     } 
     return instance; 
    } 
} 

class Second { 
    public static void main(String[] args) { 
     First f = First.getInstance(); //Always the same instance of First. 
    } 
} 
+0

谢谢...这是有帮助的。 –