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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 墓____夜 中级黑马   /  2014-6-17 10:32  /  1040 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态类 用类名。方法名调用 单例是创建对象后在调用,具体有什么区别呢?

2 个回复

倒序浏览
1。使用的方便性:如果需要初始化工作,单例模式可以在构造函数里面完成,全静态函数的类需要一个额外的函数来完成初始化工作,而且使用者如果没有 调用这个initialize函数,那么后续的操作就会有问题,构造函数会被默认调用,所以使用起来比较简单,对使用者做出了最少的假设。  2。初始化时机:单例模式初始化比较灵活,可以在需要的时候初始化,而全静态函数必然导致成员全为静态成员,静态成员是在编译时就初始化好了。如果 初始化成本比较昂贵,并且程序里面未必一定使用这个类,那这将是单例模式的一个很大优势。顺便说一下全局变量,全局变量的初始化顺序是未指定的。  例如 全局变量int a; int b;编译器是先初始化a还是先初始化b?我想大家只能靠猜,或者在某个编译器上实验一下给出答案,一旦要是有个新编译器,结果又会是什么样子呢?  3。最重要的区别:单例模式可以有多态,而全静态的类不能支持多态。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
用static修饰类不是只能在内部类才行吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马