美文网首页
区分枚举类和类

区分枚举类和类

作者: 咖A喱 | 来源:发表于2019-03-03 17:10 被阅读0次

    枚举类

    概念:

    1. 用以存储一组有关联且有意义的常量的特殊数据类型
    2. 枚举类也是类,具有自己的成员变量和方法、构造器y

    异同:

    1. 使用的是enum关键字而不是class
    2. 多个枚举变量直接用逗号隔开
    3. 枚举变量大写,多个单词之家使用“_"隔开(如DATE_TIME)
    4. 枚举的变量必须在第一行列出,定义完所有变量后,分号结束。枚举变量自动添加public static final修饰
    5. 构造器只能使用private修饰
    6. 在其他类中使用枚举类的变量时,只需要【类名.变量名】
    7. 如果实例化输入的参数不完全一致,则会抛出IllegalArgumentException异常

    案例:

    • 设计一个可以获取发票代码所在省份的代码
    • 用CityEnum存储对应的常量
    package model;
    
    //需求:根据发票代码查找发票所在省份
    public enum CityEnum {
        BJS("北京市", "11"), SHHS("上海市", "31"), TJS("天津市", "12"),
        CHQS("重庆市", "50"), XGTBXZQ("香港特别行政区", "xg"), AMTBXZQ("澳门特别行政区", "am"),
        HEBS("河北省", "13"), ZJS("浙江省", "33"), LNS("辽宁省", "21"),
        HUBS("湖北省", "42"), JSS("江苏省", "32"), NMGZZQ("内蒙古自治区", "15"),
        JXS("江西省", "36"), SXS("山西省", "14"), GSS("甘肃省", "62"), SDS("山东省", "37"),
        HLJS("黑龙江省", "23"), FJS("福建省", "35"), GDS("广东省", "44"), SCS("四川省", "52"),
        HUNS("湖南省", "43"), HENS("河南省", "41"), YNS("云南省", "53"), AHS("安徽省", "34"),
        NXZZQ("宁夏回族自治区", "64"), JLS("吉林省", "22"), GXZZQ("广西壮族自治区", "45"), GZS("贵州省", "52"),
        SHXS("陕西省", "61"), QHS("青海省", "63"), HINS("海南省","46"),
        XZ("西藏自治区", "54"), XJZZQ("新疆维吾尔自治区", "65");
        private String city;
        private String index;
    
        CityEnum(String city, String index) {
            this.city = city;
            this.index = index;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    
        public String getIndex() {
            return index;
        }
    
        public void setIndex(String index) {
            this.index = index;
        }
    }
    
    package model;
    
    public class MainTest {
        public static void main(String[] args) {
            System.out.println(getCity("61"));
        }
        public static  String getCity(String index){
            for (CityEnum city : CityEnum.values()){
                if(city.getIndex().equals(index)){
                    return city.getCity();
                }
            }return null;
        }
    }
    

    输出结果:

    陕西省
    

    相关文章

      网友评论

          本文标题:区分枚举类和类

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