美文网首页
Java-枚举类型 (28)

Java-枚举类型 (28)

作者: 桑鱼nicoo | 来源:发表于2020-01-19 12:33 被阅读0次
    public enum Spiciness{
        NOT,MILD,MEDIUM,HOT,FLAMING
    }
    

    这里创建了一个名为Spiciness的枚举类型,它具有5个具名值,由于枚举类型的实例是常量,因此按照命名惯例它们都用大写字母表示(如果在一个名字中有多个单词,用下划线将它们隔开)

    为了使用enum,需要创建一个该类型的引用,并将其赋值给某个实例:

    public class SimpleEnumUse{
        public static void main(String[] args){
            Spiciness howHot = Spiciness.MEDIUM;
            System.out.println(howHot);
        }
    }
    

    在你创建enum时,编译器会自动添加一些有用的特性。例如,它会创建toString()方法,以便你可以很方便地显示某个enum实例的名字,这正是上面的打印语句如何产生其输出的答案。编译器还会创建ordinal()方法,用来表示某个特定enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量值构成的数组

    public class EnumOrder{
        public static void main(String[] args){
          for(Spiciness s: Spiciness.values()){
              System.out.println(s + ", ordinal " + s.ordinal());
            }
        }
    }
    

    由于switch是要在有限的集合中进行选择,enum可以在switch语句中使用

    public class Burrito{
        Spiciness degree;
        public Burrito(Spiciness degree){
            this.degree = degree;
        }
    
        public void describe(){
            System.out.println("this burrito is");
            switch (degree){
                case NOT: System.out.println("not spicy at all");break;
                case MILD:
                case MEDIUM:System.out.println("a little hot");break;
                case HOT:
                case FLAMING:
                default: System.out.println("maybe too hot.");
            }
        }
        public static void main(String[] args){
            Burrito plain = new Burrito(Spiciness.NOT);
            Burrito greenChile = new Burrito(Spiciness.MEDIUM);
            Burrito jalaeno = new Burrito(Spiciness.HOT);
            plain.describe();
            greenChile.describe();
            jalaeno.describe();
        }
    }
    

    大体上,你可以将enum用作另外一个创建数据类型的方式,然后直接将所得到的类型拿来使用,这正是关键所在。

    相关文章

      网友评论

          本文标题:Java-枚举类型 (28)

          本文链接:https://www.haomeiwen.com/subject/lzdrzctx.html