黑马程序员技术交流社区

标题: 枚举和单例设计模式的区别 [打印本页]

作者: java--周群    时间: 2014-8-14 23:17
标题: 枚举和单例设计模式的区别
枚举和单例设计模式的区别,黑马面试有的

作者: ximi    时间: 2014-8-14 23:22
  1. public class Test11 {

  2.         public static void main(String[] args) {
  3.                
  4.                 //调用:字母对象 -- 1
  5.                 System.out.println(Letter.A);
  6.                 //输出:com.itheima.Letter@3020ad
  7.                
  8.                 //调用:字母枚举 -- 2
  9.                 System.out.println(Letter2.A);
  10.                 //输出:A
  11.                
  12.                 //调用:字母单例模式 -- 3
  13.                 System.out.println(Letter3.getLetter3());
  14.                 //输出:com.itheima.Letter3@60e128
  15.                
  16.                 /*
  17.                  * 三者都可以调用,而[字母对象]和[字母枚举]是类似的
  18.                  * 只不过[字母枚举 ]是类似简化版
  19.                  * 如果字[字母枚举 ]里就一个A那么和[字母单例模式 ]就和类似了
  20.                  *
  21.                  * 具体了解可以参考以下几篇信息
  22.                  * 1.http://cardyn.iteye.com/blog/904534
  23.                  * 2.http://developer.51cto.com/art/201107/275031.htm
  24.                  * 3.http://www.iteye.com/topic/1116193
  25.                  */
  26.         }
  27.        
  28. }
  29. /**
  30. * 字母对象 -- 1
  31. */
  32. final class Letter{
  33.         //A 字母常量
  34.         public static final Letter A = new Letter();
  35.         //B 字母常量
  36.         public static final Letter B = new Letter();
  37.         //C 字母常量
  38.         public static final Letter C = new Letter();
  39.         /**
  40.          * 私有构造函数不可以外部实例化Letter
  41.          */
  42.         private Letter(){}
  43. }
  44. /**
  45. * 字母枚举 -- 2
  46. */
  47. enum Letter2{
  48.         A,B,C
  49. }
  50. /**
  51. * 字母单例模式 -- 3
  52. */
  53. class Letter3{
  54.         //1.初始化一个a字母对象
  55.         private static Letter3 a = new Letter3();
  56.         /**
  57.          * 私有构造函数不可以外部实例化Letter
  58.          */
  59.         private Letter3(){}
  60.         /**
  61.          * 调用获得字母对象,实现单例模式
  62.          * @return  字母对象
  63.          */
  64.         public static Letter3 getLetter3(){
  65.                 if (a == null){
  66.                         a = new Letter3();
  67.                 }
  68.                 return a;
  69.         }
  70. }
复制代码

作者: caobin    时间: 2014-12-3 23:01
这个知识点是视频中的吗?我才学到集合没映像啊
作者: rehan    时间: 2015-3-1 18:34
这都有啊,好像没有学到啊。。。。。。
作者: zx7660    时间: 2016-4-4 11:00
不太明白




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2