//Man这个类没有采用单列设计模式
class Man{
Man(){}
}
//Women这个类采用了单例设计模式
class Women{
private Women(){} //私有构造函数可以禁止别人new这个类的对象
private static final Women w = new Women(); //自己建一个对象供别人使用,当然也必须私有,否则别人可以通过Women.w的方式直接调用。
public static Women getInstance(){ //提供一个方法让别人可以创建该类对象。
return w;
}
}
class SingleDemo{
public static void main(String[] args){
//创建Man的两个对象进行比较
Man m1 = new Man();
Man m2 = new Man();
System.out.println(m1.equals(m2)); //输出 false 说明m1和m2是两个对象
//创建Women的两个对象进行比较
Women w1 = Women.getInstance();
Women w2 = Women.getInstance();
System.out.println(w1.equals(w2)); //输出 true 说明w1和w2是同一个对象
}
}
private static Single s = new Single();
private Single(){}
public static Single getInstance() //通过这方法才能拿到这对象,不能再new对象了,用静态修饰,方法被调用只有2种方式可以用,一个是对象一个是类名,,,现在是没有对象调用那个
方法了因为其他人不能new对象了所以用类名调用,能用类名调用,这方法必须要静态,静态方法是得访问类中成员,所以Single s 也是静态,s是成员
变量,类中变量,一般定义变量都私有化所以Single s 也是私有,通过方法来访问它,只有get方法不要set方法,因为只有一个对象不需要再设置了
{
return s;
}