美文网首页
枚举类型

枚举类型

作者: 云烟渐成雨 | 来源:发表于2019-07-21 22:52 被阅读0次

由于枚举类型的实例是常量,因此按照命名惯例都用大写字母表示(如果一个名字中有多个单词,用下划线隔开)。

public enum Spiciness {
        NOT, MILD, MEDIUM, HOT, FLAMING
}

为了使用enum,需要创建一个该类型的引用,并将其赋值给某个实例:

public class SimpleEnumUse {

    public static void main(String[] args) {
        Spiciness howHot = Spiciness.HOT;
        System.out.println(howHot);
    }

}

运行结果:

HOT

当创建enum时,编译器会自动添加一些特性。例如会创建toString()方法,便于显示某个enum实例的名字,还会创建ordinal()方法,用来表示某个特定enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量 值构成的数组。

class EnumOrder {
    public static void main(String[] args) {
        for (SimpleEnumUse.Spiciness s : SimpleEnumUse.Spiciness.values()) {
            System.out.println(s + ",ordinal" + s.ordinal());
        }
    }
}

运行结果:

NOT,ordinal:0
MILD,ordinal:1
MEDIUM,ordinal:2
HOT,ordinal:3
FLAMING,ordinal:4

enum看起来像一个新的数据类型,但是enum是一个类,可以有自己的方法。

enum有一个很实用的特性,即它可以在switch语句内使用

class SwitchTest {
    SimpleEnumUse.Spiciness degree;

    public SwitchTest(SimpleEnumUse.Spiciness degree) {
        this.degree = degree;
    }

    public void describe() {
        System.out.println("This degree is ");
        switch (degree) {
            case NOT:
                System.out.println("not");
                break;
            case MILD:
            case MEDIUM:
                System.out.println("medium");
                break;
            case HOT:
            case FLAMING:
            default:
                System.out.println("hot");
        }
    }

    public static void main(String[] args) {
        SwitchTest not, medium, hot;
        not = new SwitchTest(SimpleEnumUse.Spiciness.NOT);
        medium = new SwitchTest(SimpleEnumUse.Spiciness.MEDIUM);
        hot = new SwitchTest(SimpleEnumUse.Spiciness.HOT);
        not.describe();
        medium.describe();
        hot.describe();
    }
}

运行结果:

This degree is 
not
This degree is 
medium
This degree is 
hot

由于switch是要在有限的可能值集合中进行选择,因此它和enum很适合组合使用

相关文章

  • C语言基础 之 枚举类型

    枚举类型 枚举类型: 列出所有可能的值 枚举类型的定义 枚举类型定义的一般格式:enum 枚举类型名 {枚举值表}...

  • Swift 基础笔记 - 枚举

    枚举 OC定义和使用枚举 Swift定义枚举类型 Swift判断枚举类型 枚举成员类型

  • 枚举

    枚举 枚举就是专门用来表示几种固定类型的取值 枚举的本质就是基本数据类型,整型 枚举类型定义格式 定义枚举类型变量...

  • JavaScript中的Enum枚举类型数据

    一、枚举类型介绍 1、枚举类型 如果接触过其它语言或者TypeScript,大概对于枚举类型有一些了解。枚举类型是...

  • TS学习笔记(6)-枚举类型

    枚举类型 ========= 知识点 枚举类型的定义方法 枚举类型的使用方法 代码

  • WWDC2015Session106What's New

    新特性:基本类型、类型匹配、可检查性、协议扩展、错误处理 基本类型 枚举 在枚举中加入类型: 递归枚举递归枚举中需...

  • 枚举类

    1.枚举类型的定义: 枚举类型定义的一般形式为 enum 枚举名{//枚举值表枚举值1;枚举值2;...} 在枚举...

  • C语言学习 - 枚举型数据类型

    枚举变量的定义 方式一Step 1:声明枚举类型:格式:enum 枚举类型名{枚举值1,...,枚举值n}如:en...

  • typescript语法精讲四(笔记)

    - 枚举类型 枚举的特性就是将一组可能出现的值,列举出来,定义到类型中去 - 枚举类型的值 枚举类型默认是有值的,...

  • C++学习笔记(二)

    1 数据类型 枚举类型枚举类型枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干...

网友评论

      本文标题:枚举类型

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