【发布时间】:2016-03-28 20:50:43
【问题描述】:
我想到了一个常见的单例设计模式:
public class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null)
instance=new Singleton();
return instance;
}
}
据我所知,构造函数是非静态方法,因为它们可以使用上下文引用“this”(在静态上下文中是禁止的)。另一方面,静态成员只能访问静态成员。
那么静态成员getInstance()怎么可能访问非静态成员构造函数呢?
【问题讨论】:
-
可以从任何地方调用构造函数。(这里,因为它是单例的——所以在类内部的任何地方)
-
这里创建了一个新实例。这不像我们在您的静态方法中调用
Singleton()(就像我们调用另一个方法一样)。这当然是不可能的。 -
costructors 是非静态方法。构造函数是构造函数。方法有一个返回类型。
标签: java design-patterns singleton