关于 创建 只能 实例化两个 对象的单体类

题目: 设计一个类,要求该类有且只能有两个实例对象

 

 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         有没有更好的设计方法

 
      

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值