A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谁能分析下为什么单例模式只能产生一个实例

6 个回复

倒序浏览
因为类变量在类被加载是加载,而且只加载一次。
回复 使用道具 举报
单例设计模式是为了使一个类在内存中只存在一个对象
为了保证只有一个对象,就得保证其他程序不能创建该类对象,就将该类的构造函数私有化,,然后在本类创建一个对象,提供一个方法可以使外部程序获取该类对象
  1. class SingleDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Single s = Single.getInstance();
  6.         }
  7. }
  8. class Single
  9. {
  10.         private Demo(){}//将构造函数私有化,控制其他程序创建该类对象
  11.         private static final Single s = new Single();//在本类中建立一个对象,
  12.         public static Single getInstance(s)//对外提供一个方法,使外部程序可以获取本类对象
  13.         {
  14.                 return s;
  15.         }
  16. }
复制代码

回复 使用道具 举报
很多时候都会用到单利设计模式,是为了让程序更符合面向对象编程的思想。
Runtime就是单利设计模式。他不可能有两个对象,在API中是这样的,你自己想象也是不可能出现两个对象的。
回复 使用道具 举报
因为私有了对象。返回的都是一个地址值指向了那个对象。
回复 使用道具 举报
new的对象只有一个,并且在内存中只产生一个地址值,所以说,单例只能产生一个实例~
回复 使用道具 举报
因为只能调用特点的静态方法!静态方法只创建一个对象!无论创建多少次都是一个类的对象!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马