黑马程序员技术交流社区

标题: 关于枚举的问题, [打印本页]

作者: fenzheng    时间: 2014-4-30 10:33
标题: 关于枚举的问题,
哪位亲能给我讲讲你们对枚举的理解??????我看过毕老师讲的,这几天又看了张孝祥老师的,我发现我越来越懵了,哪位过来人能从你们理解的角度,给我引导一下,  急求!!!万分感谢!!!!!
作者: Lin0411    时间: 2014-5-2 12:06
在实际的生活和编程中,肯定存在这样一些‘数据集’,他们的值是固定的和有限的,例星期一到星期天,颜色,红绿灯等等,为了能更好的使用这些数据,使用枚举是一个非常好的办法。枚举本身是一个特殊的类,例如,为了表示交通灯,灯的种类是固定的,red,green,yellow。假设不用枚举而是用类来实现。
class Lamp
{
     public Lamp() {}
   
     public static Lamp RED = new Lamp();
     public static Lamp GREEN = new Lamp();
     public static Lamp YELLOW = new Lamp();
      
}

当然还可以在Lamp中定义一些方法,例如在函数中传入Lamp对象以获得每个灯的下一个灯的Lamp实例。
但是,如果用枚举就方便多了。
public enum Lamp
{
        RED,GREEN,YELLOW;
        public void Lamp(String lamp)

}
作者: Lin0411    时间: 2014-5-2 12:10
不小心按错了。
public enum Lamp
{
         RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");
         private String lamp;
         public void Lamp(String lamp)
        {
             this.lamp = lamp;
         }
}

可以用Lmap.valueOf("RED") 来获得Lamp中的RED实例,这就比用类来模拟实现枚举要简单得多!!
作者: skill20    时间: 2014-5-2 18:25
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。
  1. public enum Color{
  2.         RED, BLACK, BLUE, YELLOW, GREEN;
  3. }
复制代码

enum是很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类(java.lang.Enum)。它们继承了这个Enum中的许多有用的方法。
1、Color枚举类就是class,而且是一个不可以被继承的final类。
      其枚举值(RED,BLUE.。.)都是Color类型实例化对象。
2、 构造器只能私有private,绝对不允许有public构造器。 这样可以保证外部代码无法新构造枚举类的实例。


作者: shi0000    时间: 2014-5-2 18:57
枚举就是将集合中的对象元素一个个提取出来。枚举有7中常见用法:     用法一:常量

              以上7中方法引自百度。
在我们现阶段主要掌握前5中方法就可以了。








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