题目: 设计一个类,要求该类有且只能有两个实例对象
class single{
private static single m_object1;
private static single m_object2;
public static int i=0;
private single()
{
}
public static single mb_getobject()
{
i++;//用于计数 对象的个数
if(i<=2)
if(i==1) {
m_object1=new single();
return m_object1;
}
else{
m_object2=new single();
return m_object2;
}
else
return m_object1;//
}
}//只能实例化两个对象的单体类设计完毕
public class J_Singleton {
/**
* @param args
*/
public static void main(String[] args) {
single a=single.mb_getobject();
System.out.println(single.i);//测试静态成员值的变化
single b=single.mb_getobject();//实例化单体类
System.out.println(single.i);
if(a==b)
System.out.println("相同");
else
System.out.println("不同");
}
}
结果显示 1
2
不同,
我想问下:1 private single(){}是否未被调用 因为我试过, 将静态 成员 i 放入其中,实例化对象后 i值不变
仅仅是为了 在其他类中 不能自行创建类single的其他对象
2 有没有更好的设计方法