package cn.china; public class Single { public static void main(String[]args){ // S singles=S.getInstance(); // S singless=S.getInstance(); // System.out.println(singles==singless); Test tt=Test.getInstance(); Test ttt=Test.getInstance(); tt.setNum(10); ttt.setNum(20); System.out.println(tt.getNum()); System.out.println(ttt.getNum()); } /** * 单类设计模式: * 解决的问题,就是可以保证一个类在内存中的对象唯一性 *如何确保对象唯一性呢? *1、不允许其他程序用new创建该类对象。 *2、在该类中创建一个本类实例。 *3、对外提供一个方法让其他程序可以获取该对象 *步骤: *1、私有化该类构造函数 *2、通过new在本类中创建一个本类对象 *3、定义一个共有方法,将创建的对象返回。 */ } //饿汉式 class S{ private static S single=new S(); private S(){} public static S getInstance(){ return single; } } class Test{ private int num; private static Test t=new Test(); private Test(){} public static Test getInstance(){ return t; } public void setNum(int num){ this.num=num; } public int getNum(){ return this.num; } } //懒汉式 class single2{//类加载进来没有对象,只有调用了getInstance方法时,才会创建对象。 private static single2 s=null; private single2(){} public static single2 getInstance(){ if(s==null) s=new single2(); return s; } }