/*单例模式饿汉简单粗暴
* 饿顾名思义直接吃,安全,所以单例模式饿汉直接吃很安全(主要是针对线程安全)
*
* */
public class Name {
private String name;
private Integer age;
/******* 没有内部私有构造方法,还可以进行实例化。内部私有构造方法逼迫用户使用 getIntance 方法获得实例 ******/
private Name() {
super();
}
private static final Name namer = new Name();
// static方法静态方法,不需要实例直接点就出来。单例模式要与static结合的才有意义
public static Name getIntance() {
return namer;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
测试
public class NameTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Name name = Name.getIntance();
name.setAge(23);
System.out.println(name.getAge());
Name name1 = Name.getIntance();
name1.setAge(24);
System.out.println(name.getAge());
System.out.println(name1.getAge());
/*
看上面类中有
private Name() {
super();
}
如果Name类没有私有内部构造方法
有的用户还是可以通过 Name name3 = new Name();
加上私有内部构造方法作用就是
逼迫用户只能使用getIntance 获得实例,而不能new 出来(无参的)。
*
*23
*是23
*再次赋值将第一个也改变都为24.(sysout位置搞懂)
*24
*24以最后一个为标准
*
*
*/
}
}