码迷,mamicode.com
首页 > 编程语言 > 详细

Java——枚举enum

时间:2015-07-21 12:28:18      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

枚举
我认为:枚举简单的说也可以一种数据类型,只不过是这种数据类型只包含我们自定义的数据,它是一组有共同特性的数据的集合。举个简单例子,颜色也可以定义成枚举类型,它可以包含你自定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如季节(春夏秋冬)、星期(星期一到星期日)、衣服的号码(S、M、L、XL)等等这些具有共同特性的数据都可以定义枚举。

下面是个例子:
public class EnumTest {

    public static void main(String[] args) {
        Scanner in =  new Scanner(System.in);
        System.out.println("请输入:");
        String input=in.next().toUpperCase();
        Size size=Enum.valueOf(Size.class,input);
        System.out.println("size="+size);
        System.out.println("abbreviation="+size.getAbbreviation());
        if(size==Size.EXTRA_LAGRE){
            System.out.println("Good job!");
        }
    }    
    
    enum Size{
        SMALL("S"),MEDIUM("M"),LAGRE("L"),EXTRA_LAGRE("XL");
        
        private String abbreviation;

        private Size(String abbreviation){
            this.abbreviation=abbreviation;
        }

        public String getAbbreviation() {
            return abbreviation;
        }        
    }
    
}

枚举的常用方法

static Enum valueOf(Class enumClass, String name)返回指定名字、给定义的枚举常量。

String name()返回枚举常量的名称

String toString()返回枚举的常量名称 比name更常用。

int ordinal() 返回枚举值在枚举中的位置(索引),从0开始。

int compareTo(E other)如果返回枚举常量在other之前,则返回一个负值;如果this==other,则返回0;否则返回正常值。枚举常量出现的次序在enum声明中给出。

下面是个例子:

public static void main(String[] args){
            Size size =Size.MEDIUM;
            System.out.println(size);//MEDIUM
            System.out.println(size.name());//MEDIUM
            System.out.println(size.ordinal());//1
            System.out.println(Size.valueOf("MEDIUM").toString());//MEDIUM
            System.out.println(Size.values().length);//4  获取枚举长度
        }

枚举的遍历

public static void main(String[] args){
        for(Size size:Size.values()){
            System.out.println(size);
        }
    }

 

枚举特点

1.用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。

2.枚举类的构造函数只能使用private访问修饰符,如果省略了其构造器的访问控制符,则默认使用private修饰。

3.枚举类的所有实例必须在枚举类中显式列出,否则这个枚举类将永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无需程序员显式添加。

4.枚举类型的变量值能存储这个类型声明中给定的某个枚举值或者null值,null表示这个变量没有设置任何值。

5.如果比较两个枚举类型de值,永远不要调用equals,直接使用“==”就可以了。

6.枚举也可以像一般的类一样添加方法和属性,可以为它添加静态和非静态的属性或方法。

例如:

public enum Gender {

    MALE("男"), FEMALE("女");
    private String name;

    private Gender(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public String toString() {
        String name = null;
        switch (this) {
        case MALE:
            name = "男";
            break;
        case FEMALE:
            name = "女";
            break;
        }
        return name;
    }
}

 

Java——枚举enum

标签:

原文地址:http://www.cnblogs.com/iCcccy/p/4663695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!