单例模式解决的问题就是,保证一个类在内存中的对象唯一性。
怎么个原理呢?就是在类中定义好私有的静态对象。
大家可以看看代码,小菜写了一些注释。
class singeDeom { public static void main(String[] argu) { // single s=single.getSingle(); // single s1=single.getSingle(); single2 s=single2.getSingle2(); single2 s1=single2.getSingle2();// 看似两个类,实际上是一个类,打印的结果都是20 s.setage(10); s1.setage(20); int num1=s.getage(); int num2=s1.getage(); System.out.println(num1); System.out.println(num2); } } //懒汉式,在没有调用方法的时候就创建了 class single { //首先创建一个公共的对象 private static single s=new single(); //私有的构造函数为了不让在其他层对这个类实例化 private single(){} //因为不能实例化类只能通过类名调用(类名可以调用静态方法),所以用静态 public static single getSingle() { return s; } private int age; public void setage(int age){ this.age=age; } public int getage() { return age; } } //在调用方法的时候才创建 class single2 { private static single2 s=null; private single2(){} public static single2 getSingle2(){ if(s==null) s=new single2(); return s; } private int age; public void setage(int age){ this.age=age; } public int getage() { return age; } }