黑马程序员技术交流社区

标题: 用单例来理解枚举 [打印本页]

作者: demown    时间: 2014-4-11 16:01
标题: 用单例来理解枚举
本帖最后由 demown 于 2014-4-11 16:10 编辑

没有那么复杂 其实很简单  给你个单例你看看就知道了
    单例 基础视频看完了才理解好的单例  
        class  single
       {
           private single(){}//  私有一个构造方法。
         private static single  s = new single();//私有对象.
           public static single  getInstance()//对外提供访问对象的方法.
           {
              return s ;
            }
       }
         上面代码是单例 的饿汉式  这个方法完全特别容易理解单例的好处。 所谓单例就是 给你们提供一个对象 你们所有人只能访问这个一个对象。
如果不是单例模式 访问他时候new的对象就是一个新的。就是大个比方说 , 现在我是卖苹果的 ,你们new一个对象 我给你们一个给你一个苹果。
但是有些人呢(比如小孩 吃不完)怎么办那就简单了 用单例 你们俩只能new一个对象 也就是说只能得到一个苹果 这样你们就能共享这个苹果了。
资源共享了.
    上面写的是单例 最简单的单例就是枚举类中就一个元素。所以枚举就是一种特殊的类,其中每个元素都是该类的一个实例对象。枚举内部其实就是把一个构造方法(记住是构造方法不是构造函数)私有然后分别将每个元素分别用一个公有的静态成员变量来表示,他可以有若干个公有方法或者抽象方法。如果是构造函数话 就要把这些封装的构造函数对象放在 构造方法后面 每个构造方法一次排列在调用构造方法对象调用构造函数的时候用();(构造函数的排列次位 在java中是0是第一位置)
在白话些就是 枚举把一些方法封装成一个对象来表示,其实单例就是这样的。 然后可以用封装好的对象直接使用。最简单单例,格式: public enum 枚举名字{元素名字}}例:   public enum enumnume{   element }
      枚举(Enum):我们所定义的每个枚举类型都继承自 java.lang.Enum类,枚举中的每
个成员默认都是 public static final的。
而每个枚举的成员其实就是您定义的枚举类型的一個实例(Instance) 。换句话说,
当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什
么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间
就已经完全确定下来了。

枚举和常量很像,我们定义常量的时候是通过给常量赋值,以达到在代码中使用常量进行标识。
而枚举则省去了我们赋值了,每个枚举实例在内存中都拥有自己的一个地址,我们直接用就可以了

作者: 叶飞翔    时间: 2014-8-11 21:43
总结的很好,受教了。




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