单例模式:构造方法私有 只产生一个实例
package com.jing.test;
//单例模式:构造方法私有 只产生一个实例
public class Single {
//static Single s;//封装性:为了安全起见,一般加上private
private static Single s;
private Single() {
//构造器私有:这样就只能自己类去调用构造器
}
/*提供一个public的获取对象的方法getSingle(),方法里判断是否有该类对象,如果没有就new一个,如果有就返回该对象,单例模式要求只能产生一个实例,所以通过static修饰符让他只执行一次,而静态方法不能访问非静态资源,所以s也需要用static修饰 */
public static Single getSingle() {
/*对象声明放在这里编译报错:提示变量未进行初始化。
原因是将s放在方法中必须先进行赋值才能使用,否则编译报错,这里不能给他直接new对象,需要放在类中也就是方法体外先进行初始化,进而进行判断。*/
//Single s;
if (s==null) {
s = new Single();
}
return s;
}
public static void main(String[] args) {
Single.getSingle();//静态资源可以直接通过类名去访问
}
}