使用普通类实现枚举类型

来源:互联网 发布:js div滚动条 编辑:程序博客网 时间:2024/04/28 12:29

使用普通类黄实现绿红3个颜色的枚举

class ColarEnum {//私有化防止外部实例化此类private ColarEnum(){}//转化为字符串以便输出public String toString(){if(this == GREEN)return "GREEN";elseif(this == YELLOW)return "YELLOW";elsereturn "RED";}//构造函数私有化后,只能在内部设定枚举值,此处为GREEN,YELLOW,REDpublic static final ColarEnum GREEN = new ColarEnum();//static,final顺序无关紧要public final static ColarEnum YELLOW = new ColarEnum();public final static ColarEnum RED = new ColarEnum();}public class EnumTest {public static void main(String[] args) {ColarEnum A = ColarEnum.GREEN;ColarEnum B = ColarEnum.YELLOW;ColarEnum C = ColarEnum.RED;System.out.println(A.toString());System.out.println(B.toString());System.out.println(C.toString());}}

关联3个颜色,GREEN→YELLOW→RED→GREEN..

//使用抽象方法,类也变为抽象abstract class ColarEnum {private ColarEnum(){}//抽象方法public abstract ColarEnum next();public String toString(){if(this == GREEN)return "GREEN";if(this == YELLOW)return "YELLOW";elsereturn "RED";}//每个元素来实现自己的next方法public static final ColarEnum GREEN = new ColarEnum(){public ColarEnum next(){return YELLOW;}};public final static ColarEnum YELLOW = new ColarEnum(){public ColarEnum next(){return RED;}};public final static ColarEnum RED = new ColarEnum(){public ColarEnum next(){return GREEN;}};}public class EnumTestCP {public static void main(String[] args) {ColarEnum A = ColarEnum.GREEN;System.out.println(A.toString());System.out.println(A.next().toString());System.out.println(A.next().next().toString());}}

0 0
原创粉丝点击