zoukankan      html  css  js  c++  java
  • Java 基础 —— enum

    • 枚举的遍历:

      enum Suit { CLUB, DIAMOND, HEART, SPADE }
      
      Collection<Suit> suitTypes = Arrays.asList(Suit.values());
      for (Suit suit : suitTypes) {
          ...
      }

    0. 枚举类的静态成员

    比如一个枚举类 Month,通过 Month.values() 便可遍历其成员:

    for (Month m : Month.values()) {
        ....
    }

    1. 将 enum 视为一种特殊的类

    也即可在其中添加成员方法,甚至 main() 方法。一般来说,我们希望每个枚举类型能够返回对自身的描述,而不仅仅是默认的 toString() 实现(只能返回枚举实例的名字)。为此,可以提供一个构造器,专门负责处理这个额外的描述信息。

    public enum OzWitch{
    
        WEST("West"), NORTH("North"), SOUTH("South"), EAST("East");
            // 这些枚举实例的写法,括号内有字符串,相当于对 OzWitch 构造函数的一种调用;
            // 此时必须给出以字符串为参数的构造函数;如下
    
        private String desc;
        private OzWitch(String desc) {
            this.desc = desc;
        }
    
        public String getDesc() { return desc; }
    
        public static void main(String[] args) {
    
            for (OzWitch witch: OzWitch.values()){
                System.out.println(witch.getDesc());
            }
        }
    }

    2. 枚举中的抽象函数

    public enum HourlyPayGrade {
        APPRENTICE {
            public double rate() {
                return 1.0;
            }
        },
        LEUTENANT_JOURNEYMAN {
            public double rate() {
                return 1.2;
            }
        },
        JOURNEYMAN {
            public double rate() {
                return 1.5;
            }
        },
        MASTER {
            public double rate () {
                return 2.0;
            }
        };
        public abstract double rate();
    
    }
  • 相关阅读:
    kibana.yml(中文配置详解)
    Elasticsearch之marvel(集群管理、监控)插件安装之后的浏览详解
    ElasticSearch vs Lucene多维度分析对比
    ElasticSearch 应用场景
    ElasticSearch 在Hadoop生态圈的位置
    ElasticSearch 工作原理
    ElasticSearch 架构图
    ElasticSearch vs 关系型数据库
    Codeforces Round #311 (Div. 2)
    uva 568(数学)
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9421197.html
Copyright © 2011-2022 走看看