java单例模式

来源:互联网 发布:js 调用windows程序 编辑:程序博客网 时间:2024/06/01 07:26

//单例模式,即一个类里面只有一个实例
//第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,
//在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
class Singleton
{
 private Singleton(){}//在外部用new关键字会报错,只供内部用
 
 private static Singleton instance = new Singleton();//这是private只供内部用
 
 //这里提供了一个共外部访问本class的静态方法,可以直接访问
 public static Singleton getInstance()
 {
  return instance;
 }
 
 public void say(String str)
 {
  System.out.println(str);
 }
}

class CommonClass
{
 public CommonClass()
 {
  System.out.println("这是一个普通类!");
 }
}

public class TestSingleton1
{
 public static void main(String [] args)
 {
  Singleton s1 = Singleton.getInstance();
  Singleton s2 = Singleton.getInstance();
  s1.say("HelloWorld");
  s2.say("MyHelloWorld");
  System.out.println(s1==s2);//输出true,则s1、s2指向同一个实例
  CommonClass c1 = new CommonClass();
  CommonClass c2 = new CommonClass();
  System.out.println(c1==c2);//输出false,则c1、c2分别指向不同的实例
 }

原创粉丝点击