单例类

来源:互联网 发布:mac steam 游戏存档 编辑:程序博客网 时间:2024/05/21 19:47

源代码:

class Singleton{    private static Singleton instance;    private Singleton(){}    public static Singleton getInstance(){        if(instance==null){            instance=new Singleton();        }        return instance;    }}public class Java21 {    public static void main(String[] args) {        Singleton s1=Singleton.getInstance();        Singleton s2=Singleton.getInstance();        System.out.println(s1==s2);    }    }
运行结果:

  1.单例类就是始终只能创建一个实例的类;

  2.根据单例类的定义可知,由于其只能创建一个类的实例,那么其构造器就不能够被随意的引用,所以其应该用关键字private修饰,即只能在本类中定义那个类变量,还要有相关的语句保证所定义的类变量只能有一个,根据良好的封装性的原则,应该有一个方法与外面的方法想联系,而这个方法必须是用static修饰的,因为在此前就没有该类的对象,若不用static修饰则在其他类就不能够引用它了;

  3.例如上面的源代码:构造器用了private修饰,所以只能在本类中定义该类的实例,通过方法getInstance创建实例和控制所创建的实例只有一个,在这个控制的过程中,这个getInstance方法是与外面沟通的桥梁,由于这个被定义的类变量此时不能够外面所引用,所以此时的这个方法用了static修饰,是为了在其他类当中通过类引用的方式调用它。,引用了一个变量instance,这个instance是被类方法引用的,所以其本身也要用是一个类变量。最后用了==符号确定了该类是一个单例类,只能创建一个类对象。

0 0
原创粉丝点击