单态模式下只生成一个类的对象的思考……

 class Chinese
{
 static Chinese obj = new Chinese();
 private String name;
 private int age;


 public void sing() {
  System.out.println("啊!!!");
 }


 private Chinese() {

 }


 public static Chinese getInstance() {
  return obj;
 }
}

 

public class TestChinese
{
 public static void main(String[] args) {
  Chinese ch1 =  Chinese.getInstance();
  Chinese ch2 = Chinese.getInstance();
  System.out.println(ch1 == ch2);

 }
}

/**上述这个小例让TestChinese这个类不能再去自己生成Chinese对象,而只能通过调用getInstance()去生成仅有的一个公共的Chinese对象。

*这个小例是单态模式的一个应用。主要考察对静态成成员变量的理解。

*当Chinese类加载时便完成了对静态成员变量初始化的操作。此时应该是在data segment里生成了一个obj成员变量,它指向了一个heap里的一个Chinese对象

*还要注意return语句。调用getInstance()后,返回obj这个对象。把该对象返回到调用该方法的语句上,后把ch1和ch2这两个引用均指向obj这个对象即可]

*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值