package com.itheima.d6_singleinstance;
public class Test2 {
public static void main(String[] args) {
SingleInstance2 s1 = SingleInstance2.getInstance();
SingleInstance2 s2 = SingleInstance2.getInstance();
SingleInstance2 s3 = SingleInstance2.getInstance();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s1 == s3);
}
}
package com.itheima.d6_singleinstance;
/**
* 目标:学会使用饿汉单例方式定义单例类
*/
public class SingleInstance1 {
/**
* 2.定义一个公开的静态的成员变量存储一个类的对象。
* 饿汉:在这里加载静态变量的时候就会创建对象了。
* public static int onLineNumber = 161;
*/
public static SingleInstance1 instance = new SingleInstance1();
/**
* 1.把构造器私有起来
*/
private SingleInstance1(){
}
}
package com.itheima.d6_singleinstance;
public class Test {
public static void main(String[] args) {
SingleInstance1 s1= SingleInstance1.instance;
SingleInstance1 s2= SingleInstance1.instance;
SingleInstance1 s3= SingleInstance1.instance;
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s1 == s3);
}
}
package com.itheima.d6_singleinstance;
/**
* 学会使用懒汉单例模式设计单例类
*/
public class SingleInstance2 {
/**
*2.创建一个静态的成员变量存储本类的对象,注意:此时不能初始化对象
*/
private static SingleInstance2 instance;//null
/**
* 1.私有构造器
*/
private SingleInstance2(){
}
/**
* 定义一个方法,让其他方法可以来调取一个对象
*/
public static SingleInstance2 getInstance(){
if(instance == null){
//第一次来获取对象。
instance =new SingleInstance2();
}
return instance;
}
}
package com.itheima.d6_singleinstance;
public class Test2 {
public static void main(String[] args) {
SingleInstance2 s1 = SingleInstance2.getInstance();
SingleInstance2 s2 = SingleInstance2.getInstance();
SingleInstance2 s3 = SingleInstance2.getInstance();
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s1 == s3);
}
}