zoukankan      html  css  js  c++  java
  • 枚举类:用enum关键字来定义一个枚举类

    1)枚举类的两种定义方法
                    1》通过构造器
                        public enum Grade{
                            A("A", "90-100"),B("B","80-89"),C("C", "70-79"),D("D", "80-89"),E("E", "90-100");
                            
                            private String tip;
                            private String desc;
                            
                            private Grade(String tip, String desc){
                                this.tip = tip;
                                this.desc = desc;
                            }
                        
                            public String getTip() {
                                return tip;
                            }
                        
                            public String getDesc() {
                                return desc;
                            }
                            
                        }
                    2》通过匿名内部类(一般用于有抽象方法的枚举)
                        
                        eg:
                            public enum Season {//注意:含有抽象方法的枚举类不用加abstract
                                SPRING{
                                    @Override
                                    public void show(){
                                        System.out.println("春天");
                                    }
                                },SUMMER{
                                    @Override
                                    public void show() {
                                        System.out.println("夏天");
                                    }
                                },AUTOMN{
                                    @Override
                                    public void show() {
                                        System.out.println("秋天");
                                    }
                                },WINNTER{
                                    @Override
                                    public void show() {
                                        System.out.println("冬天");
                                    }
                                };
                                //抽象方法
                                public abstract void show();
                            }
                3)switch语句和枚举类的联用
                    eg:
                        Season season = Season.SPRING;
                        String msg = null;
                            switch(season){
                            case SPRING:msg = "1"; break;//注意不是Season.SPRING
                            case SUMMER:msg = "2"; break;
                            case AUTOMN:msg = "3"; break;
                            case WINNTER:msg = "4"; break;
                            }
                        System.out.println(msg);        
                4)枚举类常用方法
                    1》String name():返回枚举值的名称
                    2》int ordinal():显示枚举值对应的索引,从0开始
                    3》type[] values():获得该枚举类对应的所有枚举值,返回一个数组
                    4》static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)://将字符串转换成带指定名称的指定枚举类型的枚举常量。
                    eg:
                        Season season = Season.SPRING;
                        System.out.println(season.name());//SPRING
                        System.out.println(season.ordinal());//0【下标】
                        
                        Season[] seasons = season.values();//获得属性值数组
                        for(Season s : seasons){
                            System.out.println(s.name());
                        }
                        
                        //Season.valueOf(Season.class, "QQ");//可判断QQ是否属于枚举值之一,
                        //抛出IllegalArgumentException:异常
                        
                        System.out.println("=="+Season.valueOf(Season.class, "SPRING").name());//正常:SPRING.        
                        //Season.valueOf(Season.class, "spring");//也会抛出异常
                        
                5)理解:
                    1》枚举类中的每一个枚举值,相当于是实例变量
                    2》枚举类与普通类一致,可以继承或实现,如果有抽象方的话,可以利用每个枚举类以匿名内部类的方式去实现
                    3》枚举值可以用在switch语句的case后面,并且直接些枚举值,不需要加上枚举类。
                    4》若枚举类只有一个枚举值,则可类似于单例设计模式。
                
            
            补充:注意枚举类和枚举集合的区别.Enum  Enumeration

     eration

  • 相关阅读:
    taotao-manager-web/pom.xml
    sublime使用说明
    taotao-manager-web(表现层),初始生成pom报错解决
    通用表空间
    InnoDB存储引擎结构介绍
    关于双主
    半同步复制
    基于gtid的复制
    多源复制和级联复制
    MySQL复制进阶
  • 原文地址:https://www.cnblogs.com/SkyGood/p/3953424.html
Copyright © 2011-2022 走看看