package com.ht.staticKeyword;
/**
* @author wht
*单例模式:
*通过把构造方法私有化,这样类外面不能new对象。因为对象只能在类里面创建
*所以单例模式就是把类里面创建好一个静态实例对象,和一个获取对象的方法。
*外部通过调用静态获取对象的方法来引用类里面的单例对象,从而达到单例。
*注意:是类外面不能new,类里面可以new的(static修饰的方法也可以来new,只要在类里面就行)
*以前自己出现误会,把static修饰的方法当成类外面的,以为类里面static修饰的方法不能new
*/
public class PreateConstruTest{
public static void main(String[] args) {
// TODO Auto-generated method stub
//这样写编译会报错,因为构造函数被私有化;
// PreateConstru a=new PreateConstru("cccc");
//PreateConstru b=new PreateConstru("dddd");
PreateConstru a=PreateConstru.getobject();
System.out.println(a.a);
}
}
class PreateConstru {
//调用私有的构造方法赋值给newPreateConstu
String a="单例模式";
private static PreateConstru newPreateConstu=new PreateConstru("初始化单例");
private PreateConstru(String b){
a=b;
}
//外面的类可以通过调用这个方法来得到这个实例化对象,但无论外部
//类中有多少个调用这个getobject来获取对象,本质还是一个对象
public static PreateConstru getobject() {
return newPreateConstu;
}
}