枚举基础

一、枚举

1.1 为什么需要枚举

这里写图片描述


1.2 java5的枚举的基本应用

这里写图片描述

  • name 方法返回枚举对象的名称。自己实现了 toString方法。
  • ordinal()方法枚举对象的位置信息。从0开始
  • valueOf() 返回对应的枚举对象。
  • values() 返回一个枚举数组,将该枚举的所有对象都返回。这样就能够遍历enum实例。

在创建enum时,编译器会自动生成一个相关类,这个类继承java.lang.Enum


1.3 实现带有构造方法的枚举

这里写图片描述

元素列表必须位于其他元素之前。且用分号隔开

且枚举类的构造方法必须是private的。如果不写也默认是private.

在枚举类后面使用()传入指定参数来指定需要调用那个构造方法。 其中空()表示默认构造方法。


1.4 实现带有抽象方法的枚举

内部类可以加访问修饰符。而外部类则只能是默认public

//带有抽象方法的枚举
import java.util.Date;

public class EnumTest {
    public static void main(String[] args) {
}

    public enum WeekDay{

        SUN(1),MON(),TUE,WED,THI,FRI,SAT;
        private WeekDay(){System.out.println("first");}
        private WeekDay(int day){System.out.println("second");}
    }

    public enum TrafficLamp{
        RED(30){
            public  TrafficLamp nextLamp(){
                return GREEN;
            }
        },
        GREEN(45){
            public  TrafficLamp nextLamp(){
                return YELLOW;
            }           
        },
        YELLOW(5){
            public  TrafficLamp nextLamp(){
                return RED;
            }           
        };
        public abstract TrafficLamp nextLamp();
        private int time;
        private TrafficLamp(int time){this.time = time;}
    }
}

可以使用枚举构造单例。


参考

java高新技术–张孝祥

猜你喜欢

转载自blog.csdn.net/qq_31156277/article/details/80762385