zoukankan      html  css  js  c++  java
  • 枚举和枚举的使用(参考java core)

    <1>枚举类型的定义

    最常见的方式就是直接声明:

    enum Size {LARGE, SMALL};

    还可以定义一个泛型类,不需要使用";"来结尾:

    enum Sex {
    
    MALE("man") , FEMALE("woman");
    
    private String word;
    
    public Size(String word) {
     this.word=word;
        }
    
    public String getWord{
     retrurn this.word;
        }
    
    }

    可以看到类中定义了一个私有域、构造器和一个get方法。

    注明:

    1. 枚举类型的值可以加上属性,形如MALE(“man”)。不过前提是类中定义了构造器和相应的私有域。
    2. 构造器只有在创建枚举类型时才会被调用

    <2>枚举类的实质

    1. 任何定义的枚举类都是Enum<E>的子类,故而不可以再继承其他类
    2. 枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。

    <3>枚举类的常见方法

    int compareTo(E other)
              比较此枚举与指定对象的顺序。(枚举默认实现了java.lang.Comparable接口)

    Class<E> getDeclaringClass()
              返回与此枚举常量的枚举类型相对应的 Class 对象。

    String name()
              返回此枚举常量的名称,在其枚举声明中对其进行声明。

    int ordinal()
              返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

    String toString()

               返回枚举常量的名称,它包含在声明中。

    static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
              返回带指定名称的指定枚举类型的枚举常量。

    事实上还有一个public static T[] values() 方法,会返回包含所有enum中声明的值的数组,这个方法并没有出现在javalang.Enum里面,而是由编译器自动加上去的。

    参见http://stackoverflow.com/questions/13659217/where-is-the-documentation-for-the-values-method-of-enum

  • 相关阅读:
    dotNet程序保护方案
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Objectivec 中 nil, Nil, NULL和NSNull的区别
    对象的相等和恒等
    IOS SDK介绍
    iOS内存管理编程指南
    http权威指南读书笔记(三)——http报文
    http权威指南学习笔记(二)
    http权威指南读书笔记(一)
    CentOS 设置环境变量
  • 原文地址:https://www.cnblogs.com/Russel/p/5942769.html
Copyright © 2011-2022 走看看