黑马程序员_枚举

------- android培训java培训、期待与您交流! ----------

1,枚举是什么?

就是让某个类型的变量的取值只能为若干个固定值中的一个。可以让编译器在编译时就可控制,避免出错。


2.枚举的应用

(1)一个简单的枚举示例
public class EnumText {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        WeekDay weekDay1 = WeekDay.MON;  
    }  
      
    public enum WeekDay{  
        SUN,MON,WED,THT,FRI,SAT;  
          
    }  

}  


(2)一个稍微复杂枚举示例
public enum TraffictLamp{  
        RED(30) {  
                    @Override  
                    public TraffictLamp nextLamp() {  
                        // TODO Auto-generated method stub  
                        return GREEN;  
                    }  
                },  
        GREEN(35) {  
            @Override  
            public TraffictLamp nextLamp() {  
                // TODO Auto-generated method stub  
                return YELLOW;  
            }  
        },  
        YELLOW(5) {  
            @Override  
            public TraffictLamp nextLamp() {  
                // TODO Auto-generated method stub  
                return RED;  
            }  
        };  
        public abstract TraffictLamp  nextLamp();  
        private int time;  
        private TraffictLamp(int time){this.time = time;}  

    }  


枚举的几个特性:


1、构造方法必须是private访问权限。

2、每一个元素(RED、YELLOW、BLACK)就是枚举类TraffictLamp的一个实例元素

3、枚举中可以有抽象方法,但是和定义普通类中抽象方法时,普通类必须是抽象类,而枚举不用,但是因为枚举类中有实例元素且有抽象方法,实例元素在定义时必须实现抽象方法。并且元素要看构造方法来具体定义。本例中定义了一个有参数的构造方法。

4,枚举是一种特殊的类,其中的每一个元素都是该类的一个实例对象,如果枚举只有一个成员时(也可以说是元素),就可以作为一种单例的实现方式。单例可以看做是一种枚举。



枚举总结:

1、枚举就相当于一个类,其中可以定义构造方法(必须私有),成员变量,普通方法和抽象方法。

2、枚举元素必须位于枚举体中最开始部分,枚举元素列表的后面没有其他成员时可以省略分号,若有其他成员则要用分号进行分割。

3、枚举只有一个成员时,可以作为一种单例的实现方法。


 
带有构造方法的枚举:

 1、构造方法必须定义为私有。

2、如果有多个构造方法,枚举元素可以根据需要,调用相应的构造方法。

带有方法的枚举:定义枚举,有抽象方法时,每个元素都是该枚举的一个实例对象,所以每个元素都必须实现抽象方法,采用类似匿名类的方式进行实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值