-------android培训 、java培训、期待与您交流! ----------
枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。
package com.heima.zxx;
/**
*用普通类模拟枚举的实现原理
*/
public abstract class MyEnum {
//匿名内部类,RED是MyEnum的子类
public static final MyEnum RED = new MyEnum(20){
@Override
public MyEnum nextLam() {
return GREEN;
}
};
public static final MyEnum GREEN = new MyEnum(25){
@Override
public MyEnum nextLam() {
return YELLOW;
}
};;
public static final MyEnum YELLOW = new MyEnum(5){
@Override
public MyEnum nextLam() {
return GREEN;
}
};;
int time;
private MyEnum(){
}
private MyEnum(int time ){
this.time =time;
}
public abstract MyEnum nextLam();
public String toString(){
return this==RED?"red":this==GREEN?"green":"yellow";
}
public int getTime() {
return this.time;
}
}
package com.heima.zxx;
public class EnumDemo {
public static void main(String[] args) {
System.out.println(MyEnum.RED.nextLam());
System.out.println(MyEnum.RED.getTime());
}
//定义一个枚举类
public enum TraficLamp{
//TraficLamp子类对象
RED(20) {
@Override
public TraficLamp nextLam() {
return GREEN;
}
},
GREEN(25) {
@Override
public TraficLamp nextLam() {
return YELLOW;
}
},
YELLOW(5) {
@Override
public TraficLamp nextLam() {
return RED;
}
};
private TraficLamp(){
}
private int time ;
private TraficLamp(int time){
this.time =time;
}
public abstract TraficLamp nextLam();
}
}
------- android培训 、 java培训 、期待与您交流! ----------