zoukankan      html  css  js  c++  java
  • 枚举类型

    Enum关键字可以将有限个具名的值组成的集合创建为一种新的类型,即枚举类型。可以实现常量集合,且能组织一对一的信息关系。

    1、枚举类型的特性

    pulic Enum SimpleEnumUse{
      ONE,TWO,THREE
    }
    • 使用Enum关键字修饰的类会继承Enum类,该类中包含了多种方法,枚举类不能继承其它类。
    • 编译器根据关键字Enum会产生某些编译器的行为,比如添加values静态方法、valueOf静态方法。

    values() :返回枚举类中的所有枚举实例;

    valueOf(String) :根据传入的参数返回同名的枚举实例;注:仅一个输入参数

    2、Enum添加属性或者方法

    • 只能在所有枚举实例之后添加属性和方法,且最后一个实例结束需添加分号区分,否则编译器报错。

    如过添加了属性及对应的构造器,在枚举类型中可以:

    pulic SimpleEnumUse{
      ONE("one"),TWO("two"),THREE;
        private String aliaName;
      private SimpleEnumUse(){
    
      }
        private SimpleEnumUse(String aliaName){
        this.aliaName=aliaName;
      }
    }
    • 可以为每个枚举实例编写自己的方法
      • 在枚举类型中添加抽象方法(每个枚举实例必须提供实现)或者非抽象方法(可覆盖,不覆盖直接调用该方法)
      • 如果直接在枚举实例中添加一个在枚举类型中没有定义的方法,编译器不会报错,但得到枚举实例后引用不到该实例方法。
    public enum SimpleEnumUse {
        ONE("one"){
            public void pri(){
                super.pri();
            }
        },
        TWO("two"),
        THREE,
        FOUR("four"),
        FIVE("five");
    
        private String str;
        private SimpleEnumUse(){
    
        }
        private SimpleEnumUse(String str){
            this.str=str;
        }
        public void pri(){
            System.out.println("hahah2");
        }
    }

    3、枚举类中方法的覆盖

    枚举类中可以覆盖Enum的非静态方法,比如toString()方法,未覆盖之前输出的是枚举实例名称,可以覆盖输出更为具体的信息。

  • 相关阅读:
    堆栈的链表方式实现
    堆栈的公式化描述实现
    队列的链表方式实现
    队列的实现:公式化描述
    二叉树实现:公式化描述
    算法学习笔记(四):合并排序
    编译caffe报错:_ZN5boost16exception_detail10bad_alloc_D2Ev
    druid的安装
    Error : Must specify a primary resource (JAR or python or R file)
    zip和zippartition总结
  • 原文地址:https://www.cnblogs.com/shixiemayi/p/9381185.html
Copyright © 2011-2022 走看看