------- android培训、java培训、期待与您交流! ----------
枚举这个名词,以前听过,但是没有深层次的接触,今天在张孝祥老师的视屏中好好的接触的了一番。接下里就是我通个视频学习对枚举做的一些总结。
首先,枚举是JDK 1.5之后才出现的新特性,虽然是一个小功能,但是很大程度上的方便了编写代码的过程。
枚举有很多种用法,在视屏中,张老师提到了四种:
1、对常量使用。
1.5版本 之前定义常量 都是 public static final XXX XXX = XXX;当要定义大量的常量的时候 急需要大量的这一段代码,显然,这是非常麻烦的事情,枚举这个功能的出现,很好的解决了这个问题,例如一个星期的日期:
public enum WeekDay {
SUN, MON,TUE,WED,THU,FRI,SAT
}
这样,方便又直观,同时省去不少麻烦。
2、结合switch使用
enum Signal {
GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED;
public void change() {
switch (color) {
case RED:
color = Signal.GREEN;
break;
case YELLOW:
color = Signal.RED;
break;
case GREEN:
color = Signal.YELLOW;
break;
}
}
}
3、枚举中的元素可以拥有自己的内部类和属性,以红绿灯为例子:
public enum TrafficLamp{
RED(40){
public TrafficLamp nextLamp() {
return GREEN;
}
},
GREEN(99){
public TrafficLamp nextLamp() {
return YELLOW;
}
},
YELLOW(3){
public TrafficLamp nextLamp() {
return RED;
}
};
private int time;
private TrafficLamp(int time){this.time = time;}
public abstract TrafficLamp nextLamp();
}
}
在这段代码中,有红绿黄三种状态,分别为RED、GREEN、YELLOW,没种灯色都带有自己的内部类,返回下一个灯的颜色,并且颜色后面可以通过()中的属性,指定触发时间,这种方式方便又简单,而且非常直观。
4、能向枚举中添加方法和覆盖枚举的方法。
需要注意的是,如果需要向枚举中添加自定义的方法,则需要在枚举的最后一个元素后面加上分号。
5、第五点是我通过晚上查阅相关资料以及API文档发现的,就是枚举集合的存在,暂时还不会用,有待研究。
以上是看完张老师的视频后的一些小总结,一方面整理一下,一方面加深枚举的印象,这样才能得到提高。
总之,枚举是个很方便的功能。