单例类:类只有一个实例
package net.csdn.blog;
public class ForValidating
{
public static void main(String[] args)
{
Singleton s1 = Singleton.getInstance(1, "s1");
Singleton s2 = Singleton.getInstance(2, "s2");//参数已经没什么作用了
System.out.println(s1 == s2);//true
System.out.println(s1.getId() + " , " + s1.getName());//1 , s1
System.out.println(s2.getId() + " , " + s2.getName());//1 , s1
}
}
class Singleton
{
private static Singleton singleton;
private int id;
private String name;
//默认构造函数和自定义构造函数
private Singleton(){}
private Singleton(int id, String name)
{
this.id = id;
this.name = name;
}
//属性的getter和setter
public int getId(){return this.id;}
public void setId(int id){this.id = id;}
public String getName(){return this.name;}
public void setName(String name){this.name = name;}
//返回实例
public static Singleton getInstance()
{
//确保有且只有一个实例
if(Singleton.singleton == null)
{
Singleton.singleton = new Singleton();
}
return Singleton.singleton;
}
//返回实例
public static Singleton getInstance(int id, String name)
{
//确保有且只有一个实例
if(Singleton.singleton == null)
{
Singleton.singleton = new Singleton(id, name);
}
return Singleton.singleton;
}
}